如何减慢Scroll-Top Speed

Aar*_*iba 4 javascript jquery scroll

ScrollTop是一个jquery插件(转到页面顶部),试图使Scroll Speed变慢,但不能正常工作.我已经改变了scrollSpeed : 'fast',,scrollSpeed : 'slow',但它仍然很快,没有任何改变.

JS:

$.fn.extend({

    addScrollTop: function(options) {

        var defaults = {
                useObjWindow : false,
                scrollSpeed : 'fast',
                zIndex: '99'
            }

            var options = $.extend(defaults, options);  

        if($('body').find('.scrollTop-btn').length == 0) {
            $('body').append('<div class="scrollTop-btn" style="display:none;"><i class="fa fa-chevron-up"></i></div>');
        }

        if(options.useObjWindow) {
            var parentWindow = this;
            var scrollWindow = this;
        }
        else {
            var parentWindow = window;
            var scrollWindow = 'html, body';
        }

        $(document).ready(function() {

            $('.scrollTop-btn').on('click', function() {
                $(scrollWindow).animate({scrollTop:0}, options.scrollSpeed);
            });

            $(parentWindow).scroll(function() { 
                $('.scrollTop-btn').hide();
                var aTop = $('.scrollTop-btn').height() + 20;

                if($(this).scrollTop() >= (aTop + 20)) {
                    $('.scrollTop-btn').css('z-index', options.zIndex);
                    $('.scrollTop-btn').show();
                }
                else {
                    if($('.scrollTop-btn').is(":visible")) {
                        $('.scrollTop-btn').hide();
                    }
                }

            });


        });
    }

});
Run Code Online (Sandbox Code Playgroud)

呼叫:

jQuery(document).ready(function() {
jQuery("body").addScrollTop();
});
Run Code Online (Sandbox Code Playgroud)

什么时候它变得更慢或更平滑?

aza*_*zad 10

使用jquery animate()

$('html,body').animate({ scrollTop: 0 }, 'slow');
Run Code Online (Sandbox Code Playgroud)

参考这个堆栈溢出问题

  • 你设置毫秒而不是“慢”.. $('html,body').animate({scrollTop: 0 }, 1000); 或 $('html,body').animate({scrollTop: 0 }, 2000); (2认同)

Hus*_*ish 7

仅使用 CSS:

html {
  scroll-behavior: smooth;
}
Run Code Online (Sandbox Code Playgroud)


Sim*_*ton 5

如果您愿意,您可以自定义您希望"滚动"持续多长时间.或者在滚动效果完成时执行其他操作.

我有一个: <a href="#" class="scrollToTop">

并希望滚动到类"开始"的元素

$('.scrollToTop').on('click', function(event){
      event.preventDefault();
      $('html, body').stop().animate({scrollTop: $('.beginning').offset().top}, 500);
 });
Run Code Online (Sandbox Code Playgroud)

你有500的最后一部分.你可以设置你希望效果持续多长时间.以毫秒为单位.

http://api.jquery.com/animate/