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));
});