Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Осечки onmouseover onmouseout (https://javascript.ru/forum/dom-window/17085-osechki-onmouseover-onmouseout.html)

trill 05.05.2011 12:31

Осечки onmouseover onmouseout
 
Хочу сделать так, что бы при наведении мыши на определенный объект, он уплывал вверх, а при onmouseout соответственно опускался, за основу взял Slide Example 2 из Spry. Проблема в том, что при быстром и резком перемещении мыши иногда объект залипает и происходит обратное действие: объект опускается при onmouseover и поднимается при onmouseout. Как с этим бороться?
Код:

<html>
    <script src="http://labs.adobe.com/technologies/spry/includes/SpryEffects.js" type="text/javascript"></script>
   
    <div onmouseover="some.start(); return false;" onmouseout="some.start(); return false;">SLIDE</div>

    <div id="someobject">
        <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" width="336" height="76">
    </div>
   
    <script type="text/javascript">
        var some = new Spry.Effect.Slide('someobject', {toggle:true});
    </script>
</html>


Маэстро 06.05.2011 18:21

Цитата:

Сообщение от trill (Сообщение 103408)
... Проблема в том, что при быстром и резком перемещении мыши иногда объект залипает и происходит обратное действие: объект опускается при onmouseover и поднимается при onmouseout. Как с этим бороться?
[/code]

-не использовать onmouseover/onmouseout.
На более общем объекте (материнском) использовать onmousemove, определять координаты мыши и проверять их попадание в заданные объекты - по факту попадания или не попадания запускать процедуры подъема/опускания. Кстати, так можно организовать "волну", когда при перемещении мыши от объекта к объекту их положение (или размер) меняется пропорционально расстоянию до указателя мыши.


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