簡體   English   中英

javascript滾動事件不一致

[英]javascript scroll event inconsistency

我試圖觸發滾動事件。 並發現這個簡單的任務不是那么簡單。

使用jQuery v1.9.1 代碼

var win = $(window);
win.on("scroll", function(){
    console.log("running");
});
// trigger the scroll event
win.trigger("scroll"); //no success 

// change the scrollTop to +1
win.scrollTop(win.scrollTop()+1) //no success 

// change the scrollTop to -1
win.scrollTop(win.scrollTop()-1) //no success

// change the scrollTop to +2
win.scrollTop(win.scrollTop()+2) //fires twice

// change the scrollTop to +1.7
win.scrollTop(win.scrollTop()+1.7) //fires twice

是否存在觸發滾動事件的正確可靠方法? 參見jsFiddle https://jsfiddle.net/u9dygoxf/1/

看起來scroll事件實際上僅在您手動觸發scroll事件或scrollTop()函數實際滾動窗口時才觸發。

這總是會警告一個值,盡管有時它是零:

var win = $(window);
win.on('scroll', function() {
  alert('scrolled: ' + win.scrollTop());
});
win.trigger('scroll');

只要頁面尚未一直滾動到底部,這就會發出警報。

var win = $(window);
win.on('scroll', function() {
  alert('scrolled: ' + win.scrollTop());
});
win.scrollTop(win.scrollTop() + 1);

只要頁面尚未一直滾動到頂部,這就會發出警報。

var win = $(window);
win.on('scroll', function() {
  alert('scrolled: ' + win.scrollTop());
});
win.scrollTop(win.scrollTop() - 1);

暫無
暫無

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

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