Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как определить элементы под div'om (https://javascript.ru/forum/dom-window/21208-kak-opredelit-ehlementy-pod-div%27om.html)

Иваннн 01.09.2011 13:21

Как определить элементы под div'om
 
Доброго времени суток. Вопрос такой. Есть список (UL) в нем LI задача - чтобы когда создаешь выделенную область мышкой как на рабочем столе windows при выделении нескольких ярлыков без помощи клавиатуры получать ссылки на эти попавшие в область выделения LI.

kadabrik 01.09.2011 14:02

Нужно пройтись по элементам доступным для выделения и посмотреть для каждого не пересекается ли он с div'ом, тут уже просто математика.

Иваннн 01.09.2011 14:33

kadabrik,
Имеется в виду у которых contentEditable=true? Если дат то возмодность изменить (может даже случайно) содержимое нам не нужна, и потом, даже если нужна, то когда проверять- после каждого mousemove? проверять через boundingBox? а может Поставиь чекбоксы, или через нажатие кнопки мышки и, например, ctrl. (надо посмотреть нет ли предустановленных действий на это сочетание)

kadabrik 01.09.2011 14:57

Под элементами доступными для выделения я имел ввиду элементы которые по логике можно выделить div'ом. Расчет попавших в эту область елементов лучше производить не на mousemove а на тот момент когда растягивание div'а закончено.

Андрей Параничев 02.09.2011 16:25

Вам нужно взять абсолютное позиционирование вашего "выделяющего" div и всех элементов, которые доступны для выделения, и проверить пересечение их координат.

Кстати, по моему собственному опыту, в интернете ни разу не видел подобного пользовательского интерфейса (с выделением, как в ОС), чтобы это действительно необходимо было и "читалось" сразу. Мне кажется, что подобный виджет уместен только в интерфейсах работы с файлами/загрузками.

Иваннн 05.09.2011 12:12

Продолжение беседы
 
Цитата:

Сообщение от kadabrik (Сообщение 124081)
Под элементами доступными для выделения я имел ввиду элементы которые по логике можно выделить div'ом. Расчет попавших в эту область елементов лучше производить не на mousemove а на тот момент когда растягивание div'а закончено.

Лучше на mousemove(ondrag) что бы интерактивно было - человек видит что выделяет.
Сравнение границ сделал через getBou...Client(). Если все грани внутри значит выделяем.
Всем спасибо.

kadabrik 05.09.2011 12:26

Ну с mousemove просто могут возникнуть серьезные тормоза, если вычислений много, этим IE часто болеет;)

Иваннн 08.09.2011 08:22

Про mousemove
 
А я сделаю для експлорера все на ondragstart, ondregend, ondrag может так лучше будет.


Часовой пояс GMT +3, время: 08:53.