【问题标题】:jquery scrolltop from Hash url来自Hash url的jquery scrolltop
【发布时间】:2017-07-29 05:50:10
【问题描述】:

我希望页面在页面加载时根据哈希 URL 平滑滚动到锚点。

www.domain.com/pagename/#matches

我有这个,但它不工作

var elem = $('#_' + window.location.hash.replace('#', ''));
if(elem) {
     $('html,body').animate({
          scrollTop: $('#' + elem).offset().top-65
        }, 1000);
        return false;
}

控制台错误是

语法错误,无法识别的表达式:#[object Object]

更新

我得到了它的工作

if(window.location.hash) {
     var elem = window.location.hash;
     $('html,body').animate({
          scrollTop: $(elem).offset().top-65
        }, 1000);
        return false;
}

然而,当动画结束时,默认的锚点动作会启动并因此跳转页面并忽略我试图实现的偏移量

【问题讨论】:

  • 分享你的完整代码你做了什么

标签: jquery scrolltop


【解决方案1】:

如果我正确理解了您的问题,请检查是否找到哈希,然后从 url 中提取它并将其传递给 scrollTop

if(window.location.hash) {
      var hash = window.location.hash.substring(1);
      $(document.body).animate({
          'scrollTop':   $('#' + hash).offset().top
      }, 2000);
}

【讨论】:

  • 谢谢你,我真的用 if(window.location.hash) { var elem = window.location.hash; $('html,body').animate({ scrollTop: $(elem).offset().top-65 }, 1000);返回假;问题是,在动画滚动后,它仍然会进行正常的锚点跳转,从而消除了我试图实现的偏移量
猜你喜欢
  • 2011-12-13
  • 1970-01-01
  • 2019-12-02
  • 2013-05-04
  • 1970-01-01
  • 2016-01-03
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多