当用户在我的网站上向下滚动时,我想检测最上面的标题何时不在视野范围内。这可以用jquery吗?
问问题
271 次
2 回答
2
正如@RoryMcCrossan 提到的,您可以自己计算。
如果你想要更多的灵活性,试试这个 jQuery 插件:
http://www.appelsiini.net/projects/viewport
它会让你根据元素是否在可见视口内来查询 DOM。
例如:
$("div:in-viewport")
只会返回div
当前可见的 s。
您还可以根据它们的位置查询不可见的元素。主要是:
$(":below-the-fold")
$(":above-the-top")
$(":left-of-screen")
$(":right-of-screen")
查看上面的链接以获取更多信息和下载。
如果你想使用这个库来查询当前未显示的元素,
无论它们在哪里,然后使用这个:
$("div").not(":in-viewport")
因此,假设您的标头的 ID 为header
,您可以使用:
var $header = $('#header');
$(window).scroll(function()
{
var isVisible = $header.is(':in-viewport');
// Now show, hide, or do whatever you want...
});
于 2012-05-11T20:41:22.837 回答
1
您需要检查元素offset()
的位置,使用窗口滚动的位置。像这样的东西:
$(window).scroll(function() {
var $header = $("#header");
var headerBottomPos = $header.offset().top + $header.height();
if (headerBottomPos < this.scrollTop()) {
// header is not being displayed
}
});
于 2012-05-11T20:42:05.813 回答