【发布时间】:2019-12-02 19:53:19
【问题描述】:
我会直接跳到问题上。 我的网页中有一些部分,每个部分都有一个 ID,并且我有一个固定的导航栏,其中包含指向这些部分的链接。 所以我想滚动到这些部分并使用偏移量,这样它就不会与我的导航栏重叠。我使用了这段代码:
$('a[href^="#"]').on('click', function(event) {
var target = $(this.getAttribute('href'));
if( target.length ) {
event.preventDefault();
$('html, body').stop().animate({
scrollTop: target.offset().top
}, 1000);
}
});
好吧,它在 chrome 中完美运行,但在边缘和 chrome incognito 中都不起作用。它有点停用链接,它们不起作用。 我在这个站点和其他站点上测试了很多不同的解决方案,但没有一个解决了这个问题。 唯一的一种解决方案是这个 css 代码:
:target::before {
content: "";
display: block;
height: 45px; /* fixed header height*/
margin: -45px 0 0; /* negative fixed header height */
}
这是完美的,但唯一的问题是我在 wordpress 上有这个网站,所以有这个管理栏,正如我所说,我也有一个固定的导航栏,所以在某些情况下偏移值必须改变。 我还寻找使用 jquery 更改该值,但我遇到了另一个问题,即选择 css 属性。我找不到选择 ':target::before' 并更改其属性的方法。 我真的不关心动画。我只是想让这件事起作用。 感谢您的帮助。
【问题讨论】:
标签: jquery html css google-chrome microsoft-edge