首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网站滚动问题

问网站滚动问题
EN

Stack Overflow用户
提问于 2016-07-19 18:39:59
回答 2查看 77关注 0票数 0

我在我的网站上滚动时遇到了一些问题。似乎当你点击链接时,它们会转到正确的页面,但如果你随后尝试上下滚动,它就会跳到顶部。

例如,在我的页面上,如果你点击“开始你的冒险”,然后向上滚动,它就会跳转。图像链接也是如此。

我尝试在我的站点上添加jquery平滑滚动https://raw.githubusercontent.com/kswedberg/jquery-smooth-scroll/master/jquery.smooth-scroll.js,然后添加以下JS:

代码语言:javascript
复制
 $(document)
    .on('click', 'a[href*="#"]', function() {
      if ( this.hash && this.pathname === location.pathname ) {
        $.bbq.pushState( '#/' + this.hash.slice(1) );
        return false;
      }
    })
    .ready(function() {
      $(window).bind('hashchange', function(event) {
        var tgt = location.hash.replace(/^#\/?/,'');
        if ( document.getElementById(tgt) ) {
          $.smoothScroll({scrollTarget: '#' + tgt});
        }
      });

      $(window).trigger('hashchange');
    });

我不介意平滑的滚动不起作用,只要用户可以正确地滚动而不跳转就好了

EN

回答 2

Stack Overflow用户

发布于 2016-07-19 18:53:28

尝试此解决方案...

删除smoothScroll插件并尝试使用下面的代码..

将“内部链接”类添加到目标锚点。

代码语言:javascript
复制
$('.inner-link').on('click', function(e) {
    var target = $(this.hash);
    if( target.length ) {
     event.preventDefault();
     $('html, body').animate({
         scrollTop: target.offset().top
     }, 1000);
     return false;
   }
  });
票数 0
EN

Stack Overflow用户

发布于 2016-07-19 20:12:19

我将删除该插件,并使用以下jQuery:

代码语言:javascript
复制
(function (jQuery) {
  jQuery.mark = {
    jump: function (options) {
      var defaults = {
        selector: 'a.scroll-on-page-link'
      };
      if (typeof options == 'string') {
        defaults.selector = options;
      }

      options = jQuery.extend(defaults, options);
      return jQuery(options.selector).click(function (e) {
        var jumpobj = jQuery(this);
        var target = jumpobj.attr('href');
        var thespeed = 1000;
        var offset = jQuery(target).offset().top;
        jQuery('html,body').animate({
          scrollTop: offset
        }, thespeed, 'swing');
        e.preventDefault();
      });
    }
  };
})(jQuery);


jQuery(function(){  
  jQuery.mark.jump();
});

然后,对于任何想要平滑滚动的链接,添加类scroll-on-page-link。

来源:http://refills.bourbon.io/#er-toc-id-14

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38456180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档