簡體   English   中英

div平滑滾動div

[英]smooth scrolling div by div

我添加了此腳本,該腳本可立即用mouseweel向下滾動100%

 $(document).ready(function () {
    var divs = $('.mydiv');
    var dir = 'up'; // wheel scroll direction
    var div = 0; // current div
    $(document.body).on('DOMMouseScroll mousewheel', function (e) {
        if (e.originalEvent.detail > 0 || e.originalEvent.wheelDelta < 0) {
            dir = 'down';
        } else {
            dir = 'up';
        }
        // find currently visible div :
        div = -1;
        divs.each(function(i){
            if (div<0 && ($(this).offset().top >= $(window).scrollTop())) {
                div = i;
            }
        });
        if (dir == 'up' && div > 0) {
            div--;
        }
        if (dir == 'down' && div < divs.length) {
            div++;
        }
        //console.log(div, dir, divs.length);
        $('html,body').stop().animate({
            scrollTop: divs.eq(div).offset().top
        }, 200);
        return false;
    });
    $(window).resize(function () {
        $('html,body').scrollTop(divs.eq(div).offset().top);
    });
});

但是我需要在上面添加一些內容,以便滾動看起來很流暢,我該怎么做?

小提琴

解:

@ user3127499已經為您提供了工作的FIDDLE

他把時間從100改為1000

$('html,body').stop().animate({
    scrollTop: divs.eq(div).offset().top
}, 1000);

並在此處添加了1000個延遲:

$('html,body').scrollTop(divs.eq(div).offset().top.delay(1000));


有一個插件:

在重新創建滾輪時,您將應對許多其他挑戰,為什么不使用這個名為Scroll Section的插件呢?

演示

您可以為animate功能或緩動功能指定持續時間以具有不同的動畫行為。

您可以在此處找到緩動函數和使用主題的說明:

jQuery簡易插件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM