實施例:有效地檢測當同級元素重疊
<div id="big"> </div>
<div class="small"> </div>
<div class="small"> </div>
<div class="small"> </div>
<div class="small"> </div>
<div class="small"> </div>
<!-- ...and so on -->
「#big」絕對定位的「小」 s的部分的後面,但 不是父元素。
我一直在做這樣的:
var smallArray = [];
var $big = $('#big');
var $bigPos = $big.offset();
$('div.small').each(function() {
var $this = $(this);
var $thisPos = $this.offset();
if(
$thisPos.left >= $bigPos.left &&
$thisPos.left <= $bigPos.left+$big.outerWidth() &&
$thisPos.top >= $bigPos.top &&
$thisPos.top <= $bigPos.top+$big.outerHeight()
) smallArray.push($this);
});
...但這似乎缺憾。我是否錯過了jQuery 或vanilla JavaScript的某些方法,這將允許我以更優雅的 &高效方式執行此操作?
感謝您提供的任何幫助。
你想完成什麼? – 2009-10-13 19:23:53
您的公式只會檢測一個小元素的左上角點是否在大元素內。如果小的右下角位於大的內部會發生什麼?它們重疊,但是你的公式不會檢測到它。 – cmcculloh 2010-02-05 19:16:42