可能重复:
How to detect page scroll to a certain point in jQuery?
Check if element is visible after scrolling
如何检测用户何时到达此div:
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<div id="theTarget">I have been reached</div>
从这个问题得到答案:
Check if element is visible after scrolling
所以我就这样做了:
function isScrolledIntoView(elem)
{
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom) && (elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
$(window).scroll(function() {
if(isScrolledIntoView($('#theTarget')))
{
alert('visible');
}
});
答案 0 :(得分:47)
$(document).on('scroll', function() {
if($(this).scrollTop()>=$('#theTarget').position().top){
yourActionHere();
}
})
比较滚动和元素位置。比打电话给你的功能。 无需插件。
答案 1 :(得分:5)
我认为您可以通过比较div位置的值来实现目标
var divPosition = $("#theTarget").offset().top;
和窗口滚动位置
var scrollPosition = window.scrollY;
答案 2 :(得分:4)
有一个jquery出现的插件,我相信它正是你所要求的。
http://plugins.jquery.com/project/appear
$('#theTarget').appear(function() {
$(this).text('Hello world');
});
它还与调整大小,初始窗口大小等等等相关联。