简体   繁体   English

当用户滚动经过页面的某个部分时 jQuery 触发动作

[英]jQuery trigger action when a user scrolls past a certain part of the page

Hey all, I need a jQuery action to fire when a user scrolls past certain locations on the page.大家好,当用户滚动经过页面上的某些位置时,我需要一个 jQuery 动作来触发。 Is this even possible with jQuery?这甚至可以用 jQuery 实现吗? I have looked at .scroll in the jQuery API and I don't think this is what I need.我在 jQuery API 中查看了 .scroll,但我认为这不是我需要的。 It fires every time the user scrolls, but I need it to fire just when a user passes a certain area.每次用户滚动时它都会触发,但我需要它在用户经过某个区域时触发。

Use the jquery event .scroll()使用 jquery 事件 .scroll()

$(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) {
        //do stuff
    }
});

http://jsfiddle.net/babumxx/hpXL4/ http://jsfiddle.net/babumxx/hpXL4/

Waypoints in jQuery should do it: http://imakewebthings.github.com/jquery-waypoints/ jQuery 中的航点应该这样做: http : //imakewebthings.github.com/jquery-waypoints/

$('#my-el').waypoint(function(direction) {
  console.log('Reached ' + this.element.id + ' from ' + direction + ' direction.');
});

jQuery waypoints plugin documentation: http://imakewebthings.com/waypoints/guides/jquery-zepto/ jQuery 航点插件文档: http : //imakewebthings.com/waypoints/guides/jquery-zepto/

To fire any action only once on a single page I have modified jondavid's snippet as following.为了在单个页面上只触发一次任何操作,我修改了 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

            }
    });

})


Scroll down to Run code snippet向下滚动到运行代码片段

Here you can check example of working code snippet;在这里您可以查看工作代码片段的示例;

 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 ) { alert('This alert is triggered after you have scroll down to 150px') $triggered_times = 1; // to make sure the above action triggers only once } }); })
 p { height: 1000px; }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body> <p>scroll down this block to get an alert</p> </body>

如何知道用户何时滚动过去<div> ?</div><div id="text_translate"><p> 我正在构建一些东西,向用户展示他们没有看到的项目。</p><p> 每个项目都在一个&lt;div&gt;中,因此当用户滚动过去一个 div 或查看该 div 时,我希望将该项目标记为已被看到。</p><p> 谷歌阅读器会这样做,如果您滚动浏览提要中的某个项目,它会自动将其标记为已读。</p><p> 如何跟踪? 请指教。</p><p> 注意:不应仅限于使用鼠标滚动、向下/向上翻页、使用箭头键等也应计算在内。 主要标准是用户已经看到了一个 div。</p></div> - How to know when a user scrolls past a <div>?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 当用户滚动到页面的特定部分时,如何触发关键帧 - How can I trigger a keyframe when the user scrolls to a certain part of a page 当用户滚动经过某个 div 时如何更改 CSS - How to change CSS when user scrolls past a certain div 当用户滚动到距顶部一定距离时执行Javascript - Execute Javascript when user scrolls past certain distance from top 用户滚动浏览时触发Jquery - Trigger Jquery when user scrolls through it 当用户使用Jquery和Waypoints滚动到页面顶部时如何触发事件? - How to trigger event when user scrolls to the top of the page using Jquery and Waypoints? 如何仅在用户滚动页面时触发 JavaScript function - How to trigger a JavaScript function only when the user scrolls the page 当用户使用jQuery滚动时,在不同的div中触发滚动事件 - Trigger a scrolling event in a different div when a user scrolls using jQuery 跟踪用户滚动数组中的div - Track when user scrolls past div that is in an array 如何知道用户何时滚动过去<div> ?</div><div id="text_translate"><p> 我正在构建一些东西,向用户展示他们没有看到的项目。</p><p> 每个项目都在一个&lt;div&gt;中,因此当用户滚动过去一个 div 或查看该 div 时,我希望将该项目标记为已被看到。</p><p> 谷歌阅读器会这样做,如果您滚动浏览提要中的某个项目,它会自动将其标记为已读。</p><p> 如何跟踪? 请指教。</p><p> 注意:不应仅限于使用鼠标滚动、向下/向上翻页、使用箭头键等也应计算在内。 主要标准是用户已经看到了一个 div。</p></div> - How to know when a user scrolls past a <div>? 当用户向下滚动一定数量(像素)时执行jQuery代码 - execute jquery code when user scrolls down a certain amount (pixels)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM