Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 当您滚动更多时,JQuery滚动事件将持续触发_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 当您滚动更多时,JQuery滚动事件将持续触发

Javascript 当您滚动更多时,JQuery滚动事件将持续触发,javascript,jquery,html,css,Javascript,Jquery,Html,Css,所以我有一个scroll事件,当用户滚动到站点上的某个点时触发。它会一直工作,直到你达到那个点并且想要继续滚动,然后它会随着每一个滚动而不断地触发。我只想开枪一次,然后就再也不开枪了 $(window).on('scroll', function() { var y_scroll_pos = window.pageYOffset; var scroll_pos_test = 450; // set to whatever you want it to be i

所以我有一个scroll事件,当用户滚动到站点上的某个点时触发。它会一直工作,直到你达到那个点并且想要继续滚动,然后它会随着每一个滚动而不断地触发。我只想开枪一次,然后就再也不开枪了

    $(window).on('scroll', function() {
    var y_scroll_pos = window.pageYOffset;
    var scroll_pos_test = 450;  // set to whatever you want it to be

    if(y_scroll_pos > scroll_pos_test) {
      alert("hey you hit it");
    }
});
我在下面设置了一个演示:


一旦达到滚动点,您就可以设置一个变量,并且只有在未设置该变量时才会发出警报

var scrolled=false;
$(窗口).on('scroll',function(){
变量y_scroll_pos=window.pageYOffset;
var scroll\u pos\u test=450;//设置为您想要的任何值
如果(y_scroll_pos>scroll_pos_test&&!scrolled){
警惕(“嘿,你击中了它”);
滚动=真;
}
});
。滚动文本{
高度:1000px;
宽度:100px;
背景颜色:黄色;
}
.滚动目标{
高度:600px;
宽度:100px;
背景颜色:绿色;
}


向下滚动

你找到我了!


一旦达到滚动点,您就可以设置一个变量,并且只有在未设置该变量时才会发出警报

var scrolled=false;
$(窗口).on('scroll',function(){
变量y_scroll_pos=window.pageYOffset;
var scroll\u pos\u test=450;//设置为您想要的任何值
如果(y_scroll_pos>scroll_pos_test&&!scrolled){
警惕(“嘿,你击中了它”);
滚动=真;
}
});
。滚动文本{
高度:1000px;
宽度:100px;
背景颜色:黄色;
}
.滚动目标{
高度:600px;
宽度:100px;
背景颜色:绿色;
}


向下滚动

你找到我了!


当然,它会在每次滚动时持续触发-您尚未删除滚动事件处理程序,如果用户继续向下滚动,则后续滚动事件的
if
条件将继续为真。请注意,在用户到达页面的该点之前,处理程序也会为每个滚动触发,但由于
if
,它不会做任何明显的事情

“我只想开枪一次,然后就再也不开枪了。”

显而易见的解决方案是,在不再需要滚动处理程序时,只需调用来移除滚动处理程序:

$(window).on('scroll', function() {
    var y_scroll_pos = window.pageYOffset;
    var scroll_pos_test = 450;  // set to whatever you want it to be

    if(y_scroll_pos > scroll_pos_test) {
      $(window).off('scroll');  // <--- add this
      alert("hey you hit it");
    }
});
$(窗口).on('scroll',function(){
变量y_scroll_pos=window.pageYOffset;
var scroll\u pos\u test=450;//设置为您想要的任何值
如果(滚动位置>滚动位置测试){

$(窗口)。关闭('滚动')//当然,它在每次滚动时都会触发-您还没有删除滚动事件处理程序,如果用户继续向下滚动,则后续滚动事件中的
if
条件将继续为真。请注意,在用户到达页面的该点之前,处理程序也会在每次滚动时触发,但它不会执行任何操作由于
if
的原因,可能会出现异常

“我只想开枪一次,然后就再也不开枪了。”

显而易见的解决方案是,在不再需要滚动处理程序时,只需调用来移除滚动处理程序:

$(window).on('scroll', function() {
    var y_scroll_pos = window.pageYOffset;
    var scroll_pos_test = 450;  // set to whatever you want it to be

    if(y_scroll_pos > scroll_pos_test) {
      $(window).off('scroll');  // <--- add this
      alert("hey you hit it");
    }
});
$(窗口).on('scroll',function(){
变量y_scroll_pos=window.pageYOffset;
var scroll\u pos\u test=450;//设置为您想要的任何值
如果(滚动位置>滚动位置测试){

$(窗口)。关闭('滚动');//@nnnnnn是的,我试图添加一个变量,该变量在内部设置为false,但没有解决问题。可能提供一个解决方案,而不是指出它。@nnnnnn是的,我试图添加一个变量,该变量在内部设置为false,但没有解决问题。可能提供一个解决方案,而不是指出它。这正是我试图做的,我正在放置“var scrolled”一直都在错误的地方。谢谢!@Jiroscopes np!这正是我想要做的,我把“var滚动”谢谢!@Jiroscopes np!这也很有效,我真的不知道有什么方法。谢谢你教了我一些东西!不客气。我建议你花半个小时浏览一下-不要试图记住所有或任何东西,只要记下对你有用的方法就行了。不是吗他的作品也很棒,老实说,我不知道有一种非常规的方法。谢谢你教我一些东西!不客气。我建议你花半个小时浏览一下-不要试图记住所有的东西或任何东西,只要记下对你有用的方法就行了。