en.javascript.info/02-ui/05-widgets/06-widget-tasks/02-moving-tooltip/solution.md
Ilya Kantor f301cb744d init
2014-10-26 22:10:13 +03:00

30 lines
No EOL
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# События
Три события имеют отношение к подсказке:
<ol>
<li>При `mouseover` -- показать.</li>
<li>При `mousemove` -- показать на новом месте.</li>
<li>При `mouseout` -- спрятать.</li>
</ol>
...Но при заходе на элемент происходят сразу оба события: `mouseover` и `mousemove` на нём же. Зачем вызывать код для показа два раза? Можно оставить его только в `mousemove`.
Стиль элемента подсказки:
```css
.tooltip {
position:absolute;
z-index:100; /* подсказка должна перекрывать другие элементы */
...
}
```
# Решение
[edit src="solution"]Решение в песочнице[/edit]
В нём есть две тонкости.
<ol>
<li>Для того, чтобы можно было получить высоту и ширину, подсказку надо сначала показать.</li>
<li>При показе -- важно, чтобы подсказка не оказалась *под* курсором. Если такое произойдет, то дальнейшие события `mousemove` станут происходить *уже на подсказке*, а не на элементе, и их обработка сломается.</li>
</ol>