Javascript 当用户滚动页面的某个部分时,jQuery触发操作

Javascript 当用户滚动页面的某个部分时,jQuery触发操作,javascript,jquery,Javascript,Jquery,嘿,我需要一个jQuery操作,当用户滚动页面上的某些位置时触发。这在jQuery中是可能的吗?我已经看过了。滚动jQueryAPI,我认为这不是我需要的。它在用户每次滚动时都会触发,但我需要它在用户经过某个区域时触发。使用jquery事件。scroll() jQuery中的航路点应该这样做: jQuery waypoints插件文档:为了在一个页面上只触发一次任何操作,我修改了jondavid的代码片段,如下所示 jQuery(document).ready(function($){

嘿,我需要一个jQuery操作,当用户滚动页面上的某些位置时触发。这在jQuery中是可能的吗?我已经看过了。滚动jQueryAPI,我认为这不是我需要的。它在用户每次滚动时都会触发,但我需要它在用户经过某个区域时触发。

使用jquery事件。scroll()


jQuery中的航路点应该这样做:


jQuery waypoints插件文档:

为了在一个页面上只触发一次任何操作,我修改了jondavid的代码片段,如下所示

jQuery(document).ready(function($){

    $triggered_times = 0;

    $(window).on('scroll', function() {

            var y_scroll_pos = window.pageYOffset;
            var scroll_pos_test = 150;   // set to whatever you want it to be

            if(y_scroll_pos > scroll_pos_test && $triggered_times == 0 ) {

                //do your stuff over here

                $triggered_times = 1;   // to make sure the above action triggers only once

            }
    });

})

向下滚动以运行代码段 在这里,您可以检查工作代码片段的示例

jQuery(文档).ready(函数($){
$triggered_times=0;
$(窗口).on('scroll',function(){
变量y_scroll_pos=window.pageYOffset;
var scroll\u pos\u test=150;//设置为您想要的任何值
如果(y_scroll_pos>scroll_pos_test&&$triggered_times==0){
警报('此警报在您向下滚动到150px'后触发)
$triggered_times=1;//确保上述操作只触发一次
}
});
})
p{
高度:1000px;
}

向下滚动此块以获取警报


我用$(“页眉,页脚”)对它进行了测试;在if语句中,它似乎不起作用,只需在if语句内外放置一个警报以测试事件是否正在触发。只需在视差单页滚动应用程序上使用waypoints.js。效果很好。我能给你的一个建议是使用航路点的链接。将可见性设置为“隐藏”。您可以使用绝对定位来设置航路点的高度。屏幕1-1。为什么
文档中有
$
符号。就绪
功能?如果我认为它有效或者无效。原因@Mursale有时不象WordPress那样定义
$
,但
jQuery
在那里定义。因此,在这里,将它放在
函数($){…}
中意味着
$=jQuery
。这就是为什么如果你从上面的代码中删除
$
符号,它在某些情况下可能会停止工作。我现在明白了。谢谢
$('#my-el').waypoint(function(direction) {
  console.log('Reached ' + this.element.id + ' from ' + direction + ' direction.');
});
jQuery(document).ready(function($){

    $triggered_times = 0;

    $(window).on('scroll', function() {

            var y_scroll_pos = window.pageYOffset;
            var scroll_pos_test = 150;   // set to whatever you want it to be

            if(y_scroll_pos > scroll_pos_test && $triggered_times == 0 ) {

                //do your stuff over here

                $triggered_times = 1;   // to make sure the above action triggers only once

            }
    });

})