0

for ループが正しく機能しないという問題があります。

基本的に、ユーザーのスクロール位置を見つけます。配列内の特定の数値よりも小さい場合は、その位置までスクロールしたいと考えています。配列内の最初の 2 つの項目は正常に動作します。しかし、最後から2番目のアイテムまでスクロールすると、そこに1秒間留まり、最後のアイテムにもアニメーションが表示されます。

これが私のコードです

たとえば、arrayPercent には、794、1588、2383、3177 の数値を含めることができます。

//Scroll postion
$(window).scroll(function() {
    var documentScrollLeft = $(document).scrollLeft();
    if (lastScrollLeft != documentScrollLeft) {
        lastScrollLeft = documentScrollLeft; 
        //
        for(var j = 0; j <= numTotalPages; j++){
            if(lastScrollLeft <= arrayPercent[j]){
                console.log(arrayPercent[j]);
                numCurrentPage = j+1;
                break;
            }
        }
    }
    //
    clearTimeout($.data(this, 'scrollTimer'));
    $.data(this, 'scrollTimer', setTimeout(function() {
        // do something
        var TEMPcurrent = 'page'+numCurrentPage;
        $('html, body').animate({
            scrollLeft: $('#'+TEMPcurrent).offset().left
        }, 250);
    }, 500));
});
4

0 に答える 0