Вы можете использовать событие mousemove. Это будет срабатывать каждый раз, когда пользователь перемещает мышь; поэтому единственный случай, когда триггер не срабатывает, - это если пользователь вообще не двигает мышь, что должно быть редко.
Единственная проблема, связанная с этим, заключается в том, что событие будет срабатывать каждый раз, когда мышь будет перемещаться по вашему изображению, поэтому вы получите МНОГО этих событий, находясь над компонентом. Что вам, вероятно, понадобится сделать, это реализовать какой-нибудь флаг в вашем методе при возникновении события. Вы включаете флаг, когда событие запускается впервые, и выключаете его, когда выходите из компонента.
Это не идеально, но я думаю, что это, вероятно, удовлетворит ваш проблемный сценарий. Ниже приведен краткий псевдокод о том, как это решение может выглядеть, я думаю, оно должно работать.
<img src="blah.png" onmousemove="JavaScript:triggerOn(event)" onmouseout="JavaScript:triggerOff(event)"/>
...
<script type='text/javascript'>
var TriggerActive = false;
function triggerOn(e){
e = e||window.e;
if( !TriggerActive){
TriggerActive = true;
// Do something
} else {
// Trigger already fired, ignore this event.
}
}
function triggerOff(e){
e = e||window.e;
if(TriggerActive)
TriggerActive = false;
}
</script>
Вы можете найти отличную информацию о событиях мыши, включая примечания по совместимости браузера здесь .