Javascript 更改#锚点的默认起始位置
我有一个带有锚点的URL,它正在正常工作:Javascript 更改#锚点的默认起始位置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个带有锚点的URL,它正在正常工作: site.com/item/id#comment-233 打开时,锚定将精确定位在页面顶部 如何改变起点?假设我希望它是从顶部向下的50px 我之所以需要这样做,是因为我在页面顶部有固定的层,因此注释重叠出现在固定标题div后面 以防万一,由于跨浏览器的兼容性,我更喜欢一种解决方案,它不涉及将注释的容器更改为“固定”和“定位顶部”减去标题的高度 假设您的 废话 废话 链接此处 废话 废话 废话 废话 废话 废话 废话 废话 废话 废话 废话 废话 基
site.com/item/id#comment-233
打开时,锚定将精确定位在页面顶部
如何改变起点?假设我希望它是从顶部向下的50px
我之所以需要这样做,是因为我在页面顶部有固定的层,因此注释重叠出现在固定标题div
后面
以防万一,由于跨浏览器的兼容性,我更喜欢一种解决方案,它不涉及将注释的容器更改为“固定”和“定位顶部”减去标题的高度 假设您的
废话
废话
链接此处
废话
废话
废话
废话
废话
废话
废话
废话
废话
废话
废话
废话
基于上述建议,这对我来说是一种享受:
<a name="[my-anchor-name]" class="anchor"></a>
.anchor {
position:relative;
top:-30px; /* or whatever value you need */
}
.主播{
位置:相对位置;
顶部:-30px;/*或您需要的任何值*/
}
此代码适用于Firefox、Chrome、IE以及其他浏览器:
<a id="comment-3" class="shifted_anchor"> </a>
<div>
... comment ...
</div>
关键是
float
属性:我们使用它来避免
造成的额外垂直空间,而这反过来又是跨浏览器兼容性所必需的。因此,我在这里结合了一些想法,并提出了一个适合我和所有浏览器的方法。空锚似乎不适合webkit浏览器,当然不适合Chrome浏览器。向锚点添加伪元素可以修复此问题,而不会破坏布局
a.anchor { position: relative; top: - $offsetHeight; visibility: hidden; }
a.anchor:before {
content:"";
float: left;
height: 0px;
}
只要用您需要的任何东西替换$offsetHeight
。添加“display:block;”对我来说很有用:
<a name="[my-anchor-name]" class="anchor"></a>
.anchor {
position:relative;
top:-50px;
display: block;
}
.主播{
位置:相对位置;
顶部:-50px;
显示:块;
}
.anchor{
显示:块;
高度:115px;
利润上限:-115px;
可见性:隐藏;
}
内容。。。
从开始,它在FF3.6上工作,但在Safari和Chrome上都不工作。@Martin在
中添加了一个,现在它在Chrome、FF和Safari上为Mean工作,就是这样。这个空间解释了所有的混乱。谢谢你@潮湿对我来说,镀铬不起作用任何东西
对我都有效。@gfeezy我刚刚尝试了我在chrome 25中发布的代码,效果很好……我喜欢类名,但我可能不会使用&npsp代码>此处。浮动:左代码>确实是个窍门!但是,不间断的空间不是必需的(至少对于现代浏览器来说),也不应该使用。这个响应非常完美!
a.anchor { position: relative; top: - $offsetHeight; visibility: hidden; }
a.anchor:before {
content:"";
float: left;
height: 0px;
}
<a name="[my-anchor-name]" class="anchor"></a>
.anchor {
position:relative;
top:-50px;
display: block;
}
.anchor{
display: block;
height: 115px; <!--same height as header-->
margin-top: -115px; <!--same height as header-->
visibility: hidden;
}
<span class="anchor"></span>
<div>content...</div>