如何检测页面滚动到jQuery中的某个点?

前端之家收集整理的这篇文章主要介绍了如何检测页面滚动到jQuery中的某个点?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
想象这是我的页面
<p>hello</p>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<p class="myPara">My Paragraph</p>

用户向下滚动到类“myPara”的段落,而不是之前,我如何警告消息?

解决方法

怎么样:
var target = $(".myPara").offset().top;
var interval = setInterval(function() {
    if ($(window).scrollTop() >= target) {
        alert("made it!");
        clearInterval(interval);
    }
},250);

这里有一个例子:http://jsfiddle.net/andrewwhitaker/24M3n/1/

您可能想要将事件处理程序附加到窗口滚动事件,但是John Resig advises against it(向下滚动到“最佳实践”)。

更新:As @AbdulJabbarWebBestow points out,它可能是一个坏主意,不必要地运行一个函数每250ms。这是一个更新的示例,只运行一次,第一次用户滚动后250毫秒:

var target = $(".mypara").offset().top,timeout = null;

$(window).scroll(function () {
    if (!timeout) {
        timeout = setTimeout(function () {
            console.log('scroll');            
            clearTimeout(timeout);
            timeout = null;
            if ($(window).scrollTop() >= target) {
                alert('made it');
            }
        },250);
    }
});

示例:http://jsfiddle.net/24M3n/858/

猜你在找的jQuery相关文章