Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Многократный запуск скрипта при наведении мыши (https://javascript.ru/forum/dom-window/18549-mnogokratnyjj-zapusk-skripta-pri-navedenii-myshi.html)

AcidCrash 06.07.2011 11:19

Многократный запуск скрипта при наведении мыши
 
http://kahn.uplab.ru/catalog/object/...trs-l-diamond/

Галерея фоток. Если навести на номер, внизу вылетает превью фотки. Если поводить по номерам, а потом убрать мыш, то фотки еще продолжают вылетать, т.к. JavaScript выполняется из буфера. Как можно убрать этот эфект. Сама функция вывода картинок выглядит так:
jQuery('#konverts2 a').hover(
 function(){
	  jQuery(this).next().css('margin-left',parseInt(jQuery(this).attr('rel')*45)+'px');
	  jQuery(this).next().css('margin-top','15px');
	  jQuery(this).next().show('normal');
	 },
 function(){
	  jQuery(this).next().hide('normal');	 
	 }
 );

melky 06.07.2011 17:27

как вариант : останавливать анимацию превьюшки остальных и скрывать их, а для текущей, соот-но, показывать

Serg_pnz 06.07.2011 17:56

При событии "навел на номер" надо сбрасывать все события анимации, которые отвечают за проявление.

Serg_pnz 06.07.2011 18:00

Вот к примеру http://www.jstoolbox.com/2008/06/05/...ript-vsego-2k/ - нет тут никаких таких глюклв

AcidCrash 06.07.2011 18:12

А как можно сбросить анимацию или останавливать, в моем случае?

AcidCrash 07.07.2011 13:34

Придумал классный вариант, чтобы функция показа срабатывала если мы навили на объект и 1 секунду держали наведенной мышь на нем. Но не знаю как это реализовать, помогите?

melky 07.07.2011 13:40

100ms
jQuery('#konverts2 a').hover(
 *!*function(){setTimeout(function(){*/!*
	  jQuery(this).next().css('margin-left',parseInt(jQuery(this).attr('rel')*45)+'px');
	  jQuery(this).next().css('margin-top','15px');
	  jQuery(this).next().show('normal');
	 *!*}, 100)}*/!*,
 function(){
	  jQuery(this).next().hide('normal');	 
	 }
 );

Serg_pnz 08.07.2011 12:02

Мне кажется, что с таймаутом ничего не получится... Надо юзать stop() http://api.jquery.com/stop


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