仅在以下情况下停止滚动后,我才想触发事件处理程序: 具体时间(比如说0.2秒)。
我有一些与css样式相关联的定位css样式(在移动版本中),每次用户滚动时,该菜单会连续不断地自动分配与滚动相对应的新值。
仅当用户启动和停止滚动后经过0.2秒时,我才想触发此事件处理程序(分配新值)。
如果我将此事件与滚动事件相关联,那么它将不会等待条件检查是否经过了0.2秒。它只会在用户滚动时继续触发事件处理程序。
那我该怎么做呢?
答案 0 :(得分:3)
您可以使用此:
// Setup isScrolling variable
var isScrolling;
// Listen for scroll events
window.addEventListener('scroll', function ( event ) {
// Clear our timeout throughout the scroll
window.clearTimeout( isScrolling );
// Set a timeout to run after scrolling ends
isScrolling = setTimeout(function() {
// Run the callback
console.log( 'Scrolling has stopped.' );
}, 200); // 200 for 0.2s
}, false);