我正在使用鼠标滚轮查看页面的背景。我只想在1000ms时触发鼠标滚轮事件,所以我正在使用去抖功能。
在我添加去抖功能并使用e.preventDefault()
之前,它阻止了滚动工作。但是,现在我已经添加了去抖功能,这不再有效,用户可以再次滚动页面。
请参阅以下代码。
$(document).ready(function() {
$(document).on('mousewheel DOMMouseScroll',debounce(function(e){
e.preventDefault();
//code to change the background image
}, 1000))
});
function debounce(fn, delay) {
var timer = null;
return function () {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
答案 0 :(得分:1)
然后像这样构建:
$(document).ready(function() {
var changeBackground = debounce(function(e){
//code to change the background image
}, 1000)
$(document).on('mousewheel DOMMouseScroll',debounce(function(e){
e.preventDefault();
changeBackground(e);
})
});