首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义滚动条和滚动到相应的部分

自定义滚动条和滚动到相应的部分
EN

Stack Overflow用户
提问于 2015-08-14 08:38:20
回答 1查看 5.7K关注 0票数 0

这是我的小提琴

代码语言:javascript
复制
(function($){
    $(window).load(function(){
        $(".sections").mCustomScrollbar({theme:"light-3"});
    });
    jQuery("ul.subMenu li a").each(function(){
        jQuery(this).click(function(){
            $thisId = jQuery(this).attr('href');
            $('html,body').animate({scrollTop: $thisId.offset().top}, 'fast');
        });
    });
})(jQuery);

我使用的是mCustomScrollbar,当你点击每个链接时,它应该滚动到相应的部分。但现在它只是跳到点击部分没有滚动,我写了滚动动画功能,但没有成功。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-14 12:45:07

经过一段时间的调整后,我开始自动滚动,但我不得不禁用mCustomScrollbar,这显然不太理想。出于某种原因,mCustomScrollbar似乎干扰了jQuery的.animate()

因此,我在mCustomScrollbar中寻找类似于mCustomScrollbar的内容,并发现如下:

scrollTo $(选择器).mCustomScrollbar(“scrollTo”,位置、选项); 以编程方式调用scrollTo方法,将内容滚动到position参数(演示)。

mCustomScrollbar文档: scrollTo

从那以后,只需要稍微重写一下:

代码语言:javascript
复制
(function(){

    $(window).load(function(){
        $(".sections").mCustomScrollbar({theme:"light-3"});
    });

    // container ref
    var sections = $('.sections');

    $("ul.subMenu li a").each(function(){

        // link ref
        var link = $(this);

        // section ref
        var section = $(link.attr('href'));

        link.click(function(){

            sections.mCustomScrollbar("scrollTo", section.position().top, {

                // scroll as soon as clicked
                timeout:0,

                // scroll duration
                scrollInertia:200,
            });

            // disable original jumping
            return false;
        });
    });
})();

备注

  • 200 is是jQuery的fast .animate()预置的持续时间。 jQuery文档:.animate()持续时间
  • 我们滚动.sections元素而不是文档。

演示

jsfiddle上的mCustomScrollbar scrollTo

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

https://stackoverflow.com/questions/32005778

复制
相关文章

相似问题

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