en.javascript.info/2-ui/2-events-and-interfaces/6-behavior/1-behavior-tooltip/task.md
2015-02-08 10:03:24 +03:00

2.4 KiB
Raw Blame History

Поведение "подсказка"

[importance 5]

При наведении мыши на элемент, на нём возникает событие mouseover, при удалении мыши с элемента -- событие mouseout.

Зная это, напишите JS-код, который будет делать так, что при наведении на элемент, если у него есть атрибут data-tooltip -- над ним будет показываться подсказка с содержимым этого атрибута.

Например, две кнопки:

<button data-tooltip="подсказка длиннее, чем элемент">Короткая кнопка</button>
<button data-tooltip="HTML<br>подсказка">Ещё кнопка</button>

Результат в ифрейме с документом:

[iframe src="solution" height=200 border=1]

В этой задаче можно полагать, что в элементе с атрибутом data-tooltip -- только текст, то есть нет подэлементов.

Детали оформления:

  • Подсказка должна появляться при наведении на элемент, по центру и на небольшом расстоянии сверху. При уходе курсора с элемента -- исчезать.
  • Текст подсказки брать из значения атрибута `data-tooltip`. Это может быть произвольный HTML.
  • Оформление подсказки должно задаваться CSS.
  • Подсказка не должна вылезать за границы экрана, в том числе если страница частично прокручена. Если нельзя показать сверху -- показывать снизу элемента.

Важно: нужно использовать приём разработки "поведение", то есть поставить обработчик (точнее два) на document, а не на каждый элемент.

Плюс этого подхода -- динамически добавленные в DOM позже элементы автоматически получат этот функционал.