Ví dụ:hiệu quả Detect Khi anh chị em ruột Elements chồng chéo
<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" được bố trí hoàn toàn đằng sau một phần của ".small" s, nhưng không phải là một yếu tố phụ huynh.
Tôi đã làm điều này:
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);
});
... nhưng điều này dường như kludgy. Tôi có bỏ lỡ một số phương pháp của jQuery hoặc vani JavaScript mà sẽ cho phép tôi thực hiện điều này một cách hiệu quả hơn & một cách hiệu quả?
Cảm ơn bạn vì đã trợ giúp bạn có thể cung cấp.
bạn đang cố gắng làm gì? –
Công thức của bạn sẽ chỉ phát hiện nếu điểm trên cùng bên trái của một phần tử nhỏ nằm bên trong phần tử lớn. Điều gì sẽ xảy ra nếu điểm dưới cùng bên phải của nhỏ nằm bên trong cái lớn? Chúng trùng nhau, nhưng công thức của bạn sẽ không phát hiện ra nó. – cmcculloh