Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Выделение html элемента (https://javascript.ru/forum/events/30874-vydelenie-html-ehlementa.html)

Apollo_440 18.08.2012 20:38

Выделение html элемента
 
Думаю все знают, что если выделять текст, то такие элементы как IMG (по крайней мере в опере 12) выделяются. Можно ли как-нибудь это осуществить для DIV и прочих элементов?

Aetae 18.08.2012 22:50

Вручную эмулировать.
onmousedown
onmousrover
onmouseout
onmouseup

Apollo_440 19.08.2012 22:19

Но блок сам по себе не выделяется. Только текст внутри него...

Aetae 19.08.2012 22:48

Эмулировать же. Например наложением поверх полупрозрачного блока таких же размеров.
Или использовать contentEditable.

Apollo_440 19.08.2012 23:28

Цитата:

Сообщение от Aetae (Сообщение 198863)
Эмулировать же. Например наложением поверх полупрозрачного блока таких же размеров.

Это я пробовал, но нужно еще чтобы он исчезал при прокрутке родительского контейнера (родитель со скроллом). Как известно от такого способа больше хлопот, нежели пользы

Цитата:

Сообщение от Aetae (Сообщение 198863)
Или использовать contentEditable.

Выделяет только текст (по крайней мере в Опере)

Deff 19.08.2012 23:30

Apollo_440,
Добавьте к блоку невидимый текст - отслеживайте исчезновение его выделения и удаляйте выделение родителя

Apollo_440 19.08.2012 23:34

Deff,
Тогда уже проще получить координаты элемента наложения, отслеживать прокрутку и прокручивать блок наложения вместе с ним. Если координаты блока выделения совпадают с координатами родителя, то при последующем прокручивании уменьшать высоту выделения... Притом запоминать нормальный размер блока выделения и.т.п Притом что выделение обязательно должно быть вне родительского блока. Замудонно, не так ли?

Deff 20.08.2012 00:01

Apollo_440,
Если проверять по таймеру - ничо сложного. Таймер удаляем после уборки выделения, прокрутку - не отслеживаем


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