當我有鄰近應該添加或移除類名「卡住」的頁的頂部的導航容器(位置之間切換:靜態的和位置是:固定)時的頁面滾動超出特定值。似乎在FF和Chrome中工作正常,但IE(7,8和9)當然有問題。窗口滾動事件引起IE滯後差些,使用鼠標滾輪
滾動使用鼠標滾輪時,但如果我搶,然後拖動滾動條HORIZ隨後的頁面,沒有滯後順利滑動頁面滯後嚴重(基本上是不可用)。
我摸索透露,這可能是因爲IE瀏覽器的執行速度比其他瀏覽器更的方式滾動事件,但我無法弄清楚到底如何節流被解僱事件的數量。您可以在下面的代碼塊見我還使用了「滾動一站式」解決方案,但我真的需要也能夠執行的回調而當他們超越頁面上的某一點的用戶仍在滾動。
我想我實現它是相當的方式,剝離下來的和基本的,但有沒有更好的方式來處理這個問題,至少只是IE?
var scrollValue = 0;
var scrollTimer = false;
$(window).bind('scroll', function(){
scrollValue = $(window).scrollTop();
// SET TIMER DELAY FOR SCROLL-STOP
if (scrollTimer) {
clearTimeout(scrollTimer);
}
scrollTimer = setTimeout(scrollStopped, 25);
// STICK/UNSTICK HEADER
if (scrollValue > 320){
if (!$(stickyWrap).hasClass('stuck')){
$(stickyWrap).addClass('stuck')
}
} else {
if ($(stickyWrap).hasClass('stuck')){
$(stickyWrap).removeClass('stuck');
}
}
});
無關,與你的答案,但觸發事件'$(窗口)。在( '滾動',函數(){...})觸發( '滾動');'因爲頁面在加載時不總是處於0。 – Popnoodles
我可以猜測,由於您執行setTimelimit的時間很短,IE瀏覽器比較滯後。你可以嘗試增加到100 –