我知道jQuery中的:visible
,但是当元素的一部分不可见时,它会返回true,例如当child大于其父元素时。
答案 0 :(得分:1)
这样的东西应该根据完全可见的防御来做到这一点 - 注意我还没有测试过这个...关于可见的定义,因为没有隐藏而没有溢出滚动父级
var isCompletelyVisible = function($ele) {
$ele = $($ele);
var smaller = true;
$ele.each(function() {
var par = this.parentElement;
if(par.offsetWidth < this.scrollWidth ||
par.offsetHeight < this.scrollHeight) {//larger than parent element
return (smaller = false);
}
});
return smaller && $ele.is(":visible");
}
可选择添加到jQuery原型:
$.fn.isCompletelyVisible = isCompletelyVisible;
或者选择器$(":fullvisible")
(已更正)
$.expr.filters.fullvisible = isCompletelyVisible;
答案 1 :(得分:0)
如果你想检查整个元素是否可见,我能想到的唯一方法是进行计算。
检查c.x&gt; = p.x 并且(c.x + c.width)&lt; =(p.x + p.width) 等。
如果这适用于手机游戏,这可能是一个非常重要的计算方式。
请注意,如果我问为什么比父母更大是一个问题?