Javascript 仅检测鼠标滚动一次
如何对每个用户请求仅检测一次滚动。我的第一次尝试如下所示:Javascript 仅检测鼠标滚动一次,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如何对每个用户请求仅检测一次滚动。我的第一次尝试如下所示: $(窗口).bind('mousewheel',函数(事件){ log(“你好”) }) 设置scroll eventListener,然后在scroll上解除绑定: $(window).on("scroll", function(e){ console.log("only alerting once"); $(window).unbind("scroll"); }); 设置scroll eventListener,然后在s
$(窗口).bind('mousewheel',函数(事件){
log(“你好”)
})
设置scroll eventListener,然后在scroll上解除绑定:
$(window).on("scroll", function(e){
console.log("only alerting once");
$(window).unbind("scroll");
});
设置scroll eventListener,然后在scroll上解除绑定:
$(window).on("scroll", function(e){
console.log("only alerting once");
$(window).unbind("scroll");
});
var currentScrollTop=0,
previousScrollDir=true;
$(此)。滚动(函数(){
var scrollTop=$(this.scrollTop();
如果(滚动顶部<当前滚动顶部){
如果(!previousScrollDir){
log(“向上滚动”);
previousScrollDir=true;
}
}否则{
如果(上一个滚动目录){
log(“向下滚动”);
previousScrollDir=false;
}
}
currentScrollTop=scrollTop;
});代码>
var currentScrollTop=0,
previousScrollDir=true;
$(此)。滚动(函数(){
var scrollTop=$(this.scrollTop();
如果(滚动顶部<当前滚动顶部){
如果(!previousScrollDir){
log(“向上滚动”);
previousScrollDir=true;
}
}否则{
如果(上一个滚动目录){
log(“向下滚动”);
previousScrollDir=false;
}
}
currentScrollTop=scrollTop;
});代码>
第一次尝试的可能重复是正确的。你应该只做$(这个).unbind(“鼠标滚轮”)代码>完成时(在函数内部)。第一次尝试的可能重复是正确的。你应该只做$(这个).unbind(“鼠标滚轮”)代码>当你完成时(在函数内部)。我希望它能工作得更多-只要用户在我将其标记为正确答案之前滚动最后一件事。当同一方向滚动一次以上时,是否可以使console.log生效。比如,如果我向下滚动,我应该得到scroll down console.log,如果我再次向下滚动,我应该得到scroll down console.log agiant这正是它现在所做的。我不知道你在问什么。如果我向下滚动,它会显示“向下滚动”。在它停止滚动后,如果我再次向下滚动,它不会说再次向下滚动。你应该澄清你的问题。这个评论直接与问题相矛盾,问题是“如果我向下滚动,我希望hello只显示一次,而当我再次向上滚动时,我希望hello再次显示”。我希望它能发挥更大的作用——只要用户在我将其标记为正确答案之前滚动一次。当同一方向滚动一次以上时,是否可以使console.log生效。比如,如果我向下滚动,我应该得到scroll down console.log,如果我再次向下滚动,我应该得到scroll down console.log agiant这正是它现在所做的。我不知道你在问什么。如果我向下滚动,它会显示“向下滚动”。在它停止滚动后,如果我再次向下滚动,它不会说再次向下滚动。你应该澄清你的问题。该评论直接与问题相矛盾,问题是“如果我向下滚动,我希望hello只显示一次,而当我再次向上滚动时,我希望hello再次显示”。它会多次触发,在我的情况下,控制台中。log
在“unbind”方法触发多次之前执行22次,在我的例子中,console.log在“unbind”方法之前执行22次