Эффективное обнаружение при перекрытии элементов Sibling Elements

Пример:

 
 
 
 
 
 

«#big» позиционируется абсолютно за частью «.small», но не является родительским элементом.

Я делаю это:

  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.top && $thisPos.top <= $bigPos.top+$big.outerHeight() ) smallArray.push($this); }); 

… но это кажется клочковым. Я пропустил некоторые методы jQuery или ванильного JavaScript, которые позволят мне сделать это более элегантно и эффективно?

Спасибо за любую помощь, которую вы можете предоставить.

Эта формула будет определять, перекрывает ли какой-либо из указанных элементов целевой элемент:

 function findIntersectors(targetSelector, intersectorsSelector) { var intersectors = []; var $target = $(targetSelector); var tAxis = $target.offset(); var t_x = [tAxis.left, tAxis.left + $target.outerWidth()]; var t_y = [tAxis.top, tAxis.top + $target.outerHeight()]; $(intersectorsSelector).each(function() { var $this = $(this); var thisPos = $this.offset(); var i_x = [thisPos.left, thisPos.left + $this.outerWidth()] var i_y = [thisPos.top, thisPos.top + $this.outerHeight()]; if ( t_x[0] < i_x[1] && t_x[1] > i_x[0] && t_y[0] < i_y[1] && t_y[1] > i_y[0]) { intersectors.push($this); } }); return intersectors; } 

Вот POC.

Этот вопрос был очень полезен при решении этой проблемы.

Interesting Posts

Rsync через SSH с cron в osx-environment

Возможные проблемы с добавлением / usr / local / bin к корневому пути?

Текстовый поиск MongoDB и несколько поисковых слов

Перестановка шумовой монеты в круглую форму

эффективно генерировать случайную выборку времени и дат между двумя датами

Время выполнения функции измерения в R

Как я могу получить содержимое ресурса из статического контекста?

jquery, добавить / удалить class при изменении ширины windows

Является ли CLR виртуальной машиной?

Удалить внедренный документ во вложенном массиве документов

Как вывести дробь вместо десятичного числа?

Как я засеваю случайный class, чтобы избежать дублирования случайных значений

Windows 7 совместно использует интернет-соединение с несколькими сетевыми интерфейсами

В C #, почему String является ссылочным типом, который ведет себя как тип значения?

Синхронизация данных между Android-приложением и веб-сервером

Давайте будем гением компьютера.