如何确定使用jQuery给定元素位于可视窗口区域的顶部或底部下方?这将允许我确定该项目是否在屏幕外以及在哪个方向。
理想情况下:
var topPos = $(this).relativeToTop();
var bottomPos = $(this).relativeToBottom();
var isOnScreen = topPos >= 0 && bottomPos >= 0;
某处是否有在线插件或示例?
答案 0 :(得分:7)
var off = $(this).offset();
var t = off.top;
var l = off.left;
var h = $(this).height();
var w = $(this).width();
var docH = $(window).height();
var docW = $(window).width();
var isEntirelyVisible = (t > 0 && l > 0 && t + h < docH && l+ w < docW);
修改强> 在那里的某个地方,也可以检查$(document).scrollTop(),具体取决于你希望脚本处理滚动状态的方式......
答案 1 :(得分:5)
感谢大卫的帖子,它帮助我解决了我的“完全可见元素”问题,但我不得不将建议定制到以下,因为我的父div
区域大于可见窗口大小。以下代码适用于我,虽然我只需要担心垂直。
elem
是一个jquery对象,这可能仅适用于html5
function isFullyVisible (elem) {
var off = elem.offset();
var et = off.top;
var el = off.left;
var eh = elem.height();
var ew = elem.width();
var wh = window.innerHeight;
var ww = window.innerWidth;
var wx = window.pageXOffset;
var wy = window.pageYOffset;
return (et >= wy && el >= wx && et + eh <= wh + wy && el + ew <= ww + wx);
}