单击锚点链接后,ScrollTop停止工作

时间:2019-11-25 14:02:01

标签: jquery hash hyperlink scrolltop hashtag

这个问题一直困扰着我,我不确定是什么原因造成的。

我有两个简短的jquery代码,它们可以动画显示滚动到网站上的不同部分,其中之一是“返回页首”代码。

$('html, body').animate({
  scrollTop: 0
}, 1000);

另一个类似,只是它根据索引的不同部分进入

$('html, body').animate({
  scrollTop: $('section').eq(index).offset().top
}, 1000);

其中“索引”的范围是0到5(0是第一个部分,5是最后一个部分)。

除非我在菜单中使用指向锚点的链接(例如,#about),否则一切正常 我认为问题出在动画上,所以我将其删除并重新编写了以下两个代码”

$('html, body').scrollTop(0);
$('html, body').scrollTop($('section').eq(id).offset().top);

那不能解决我的问题。每当我单击锚链接时,浏览器将停止响应scrollTop代码。

我什至尝试拦截任何链接以自行控制滚动。我尝试了一下,只要单击任何哈希链接即可简单地滚动回到顶部,以查看问题是否出在我有关“节”的代码中。不。单击哈希链接后,即使scrollTop(0)也不起作用。

$('a').click(function(e) {

  var hashTag = this.href.split('#')[1];

  if (hashTag) {

    e.preventDefault();

    setTimeout(function() {
      $('html, body').scrollTop(0);
    }, 2000);

  }

});

即使那没有用。因为我要链接到锚点,所以任何试图更改scrollTop的代码都将变得无用。

有人知道为什么吗,更好的问题是我该如何解决?

谢谢

0 个答案:

没有答案