如何让div使用jQuery平滑滚动?

前端之家收集整理的这篇文章主要介绍了如何让div使用jQuery平滑滚动?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的容器有部分/框,但最后一个这些框应该跟随滚动时,其他框都不可见。

所以,当用户向下滚动时,他看到一个正常的边栏,但是当用户已经下降了,边栏终止,但最后一个框开始跟随在屏幕的顶部。我在不同类型的网站上看到过很多。

我的代码在这一刻:

$(window).scroll(function(){
    $.each($('.follow-scroll'),function(){
        var eloffset = $(this).offset();
        var windowpos = $(window).scrollTop();
        if(windowpos<eloffset.top) {
            var finaldestination = 0;
        } else {
            var finaldestination = windowpos;
        }
        $(this).stop().animate({'top':finaldestination},200);
    });
});

解决方法

由于这个问题是得到了很多的意见,并在最投票的回答链接的教程似乎离线,我花时间来清理这个脚本。

看到它住在这里:JSFiddle

JavaScript:

(function($) {
    var element = $('.follow-scroll'),originalY = element.offset().top;

    // Space between element and top of screen (when scrolling)
    var topMargin = 20;

    // Should probably be set in CSS; but here just for emphasis
    element.css('position','relative');

    $(window).on('scroll',function(event) {
        var scrollTop = $(window).scrollTop();

        element.stop(false,false).animate({
            top: scrollTop < originalY
                    ? 0
                    : scrollTop - originalY + topMargin
        },300);
    });
})(jQuery);

猜你在找的CSS相关文章