Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅检测鼠标滚动一次_Javascript_Jquery_Html_Css - Fatal编程技术网

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次