2017-03-09 66 views
0

我試圖在達到某個滾動位置時在頁面上向下滾動。當用戶向下滾動一點(100px)時,jquery應該向下滾動。Jquery在滾動位置後滾動下來

$(window).on('scroll', function() { 
     var scrollPos = $(this).scrollTop(); 
     if (scrollPos >= 100) { 
      $('html, body').animate({ scrollTop: 300 }, 50); 
     } 
    }); 

的代碼滾動,但得到的卡在滾動位置300。什麼是不卡住的好方法?

回答

2

因爲在每一個下一個滾動中,scrollPos >= 100總是如此。你必須檢查它是否是經過100

您可以在此fiddle

// just rename it to anything you want 
var hasBeenOver100Before = false; 

$(window).on('scroll', function(e) { 
    var scrollPos = $(this).scrollTop(); 
    if (scrollPos >= 100 && !hasBeenOver100Before) { 
     // so that on next scroll, code knows this part already executed 
     hasBeenOver100Before = true; 
     $('html, body').animate({ scrollTop: 300 }, 50); 
    } 

    // reset it to false, so that next time user passes to 
    // 100 scrolltop, the code above works again 
    if (scrollPos <= 100) hasBeenOver100Before = false; 
}); 
在行動中看到下面的代碼第一次用戶
0

Becouse始終scrollPos>> = 100 ...
scrollPos> = 100?是的,將它滾動到300,scrollPos> = 100?是的,將它滾動到300,是...