przykład:skutecznie wykryć, kiedy elementy rodzeństwa Nakładanie
<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” znajduje się całkowicie z tyłu części „.small” S, ale jest element nadrzędny.
robiłem to:
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);
});
... ale to wydaje kludgy. Czy brakuje mi niektórych metod jQuery lub wanilii JavaScript, które pozwolą mi zrobić to w bardziej elegancki sposób, efektywniej?
Dzięki za wszelką pomoc, jaką możesz zapewnić.
co próbujesz osiągnąć? –
Twoja formuła wykryje tylko, czy lewy górny punkt małego elementu znajduje się wewnątrz dużego elementu. Co się stanie, jeśli dolny prawy punkt małego znajduje się wewnątrz dużego? Nakładają się, ale Twoja formuła tego nie wykryje. – cmcculloh