Рассмотрим простой элемент и связанный с ним CSS:
<div id="content">Hover me !</div>
#content {
    width: 100px;
    height: 100px;
}
#content:hover {
    transform: translateY(500px);
    transition: transform 1s 500ms;
}
Принцип прост: пока элемент завис, он должен опуститься. Проблема в том, что когда  мышь не перемещается, состояние :hover сохраняется, даже если элемент физически не находится ниже мыши (из-за перевода). Состояние, похоже, обновляется только после перемещения мыши.
 
Обратите внимание на курсор (указатель) и его относительное положение с элементом!
Это реальная проблема, когда функция JavaScript должна выполняться, только если мышь находится на элементе, после timeout:
// The mouseleave event will not be called during the transition,
// unless the mouse move !
element.on('mouseenter', executeAfterTimeout);
element.on('mouseleave', cancelTimeout);
Итак, вот мои вопросы:
- Является ли это поведение нормальным (соответствует нормам)?
- Каковы решения, чтобы избежать этой проблемы?
  Изменить: Чтобы дать вам контекст, вот что я хочу сделать конкретно: с помощью JavaScript я показываю всплывающую подсказку, когда мышь находится на элементе (и спрячьте ее, когда мышь покинет ее). Но тот же элемент может быть transform -ed, когда пользователь нажимает на него. Если пользователь просто нажимает без перемещения мыши, всплывающая подсказка останется отображаемой, что является реальной проблемой. Как я могу обнаружить, что элемент ушел?
