[英]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.