有人能告诉我一种在 HTML 文档的浏览器窗口中找到第一段可见的方法吗?意味着我希望第一段不在文档内(可能大于窗口区域),而是在浏览器窗口(可见屏幕)内。
* PS 除了获取文档中的所有 'p' 元素并遍历以找到第一个可见的元素*
有人能告诉我一种在 HTML 文档的浏览器窗口中找到第一段可见的方法吗?意味着我希望第一段不在文档内(可能大于窗口区域),而是在浏览器窗口(可见屏幕)内。
* PS 除了获取文档中的所有 'p' 元素并遍历以找到第一个可见的元素*
有一个 jQuery 插件,你可以试试:www.appelsiini.net/projects/viewport
我认为这就是你想要的:
$("p:visible:first")
你可以想出某种机制来根据它们的偏移量标记你的 p 标签。因此,当页面加载时,您必须遍历您的 p 标签(或更好的部分)并根据它们的偏移位置标记它们。然后将用户的当前滚动位置与最接近的偏移量 p 进行比较将是一件简单的事情......
这应该有效:
$(document).ready(function(){
var paragraphs = $('p');
var scrollTop = $(window).scrollTop();
var scrollBtm = scrollTop + $(window).height();
paragraphs.each(function(e){
var top = $(this).offset().top;
if (top > scrollTop && top < scrollBtm){
alert("Win");
return false;
}
});
});
编辑:我意识到这是遍历 p 标签,但至少使用“return false”你不会循环遍历每个标签,只是当前视图上方的每个标签。
编辑 2:在 document.ready 上创建一个段落数组