Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Запретить анимацию на jquery (https://javascript.ru/forum/events/14472-zapretit-animaciyu-na-jquery.html)

nalezhitiy 18.01.2011 12:19

Запретить анимацию на jquery
 
Как запреть анимацию на jquery?
Ну вот такой пример:
Страничка с рисунками, когда я навожу на рисунок мне появляется блок с информацией рисунка, в этом блоке есть ссылка "Изменить", при нажатии на нее, в блоке под ссылкой появляется форма редактирования этих данных. Нужно что бы когда появилась форма человек не смог навести на другую картинку, а действие возможно выполнить после нажатия на кнопку "Отмена" в этой форме.
И как это сделать?

Matre 18.01.2011 12:44

$.fx.off=1 // выключить
$.fx.off=0 // включить

nalezhitiy 18.01.2011 20:06

Тоесть у меня есть блок который появляется при наведении на элемент.
$('#pic').hover(function(){  
     $(this).find('#nonebox').animate({'opacity': '1'},500).css({'display':'block'});
         },
		 function(){ $(this).find('#nonebox').animate({'opacity':'0'},500).css({'display':'none'});
		 $('#sendbox').css({'display':'none'});
		
     });

в блоке я нажимаю кнопку отправить сообщение
$('#sendlink').click(function(){
							 $('#sendbox').animate({'top':'10px'},500).css({'display':'block'});
		 $.fx.off = 1;//запрет на анимацию вставил
							 }
							 
							 );

То по теории когда я вставил $.fx.off = 1; и буду наводить на другие элементы, анимация не должна срабатывать и блок должен застыть пока не будет сделано следующее действие(отправка сообщения или отмена).
Но вижу что не все так просто. как это решить в моей ситуации?

Matre 18.01.2011 20:17

при нажатии на кнопку делайте $.fx.off = 1;
при отправки сообщения или отмене делайте $.fx.off = 0;
помоему,все просто

nalezhitiy 19.01.2011 20:13

просто но не работает(((
Когда навожу на другие элементы форма пропадает

Matre 19.01.2011 20:21

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
$.fx.off сейчас равен <span id="status">0</span>
<div style="background:green;width:30px;height:30px"></div>
<a href="javascript: document.getElementById('status').innerHTML = +($.fx.off = !$.fx.off); void 0">переключить</a>
<script>
(function () {
ca=arguments.callee;
$('div').animate({
marginLeft: 300
}, 3000, function () {
$('div').animate({
marginLeft: 0
}, 3000, function () {
ca()
});
});
})();
</script>
</body>
</html>


как выеснилось
мой способ работает частично-анимация доходит доконца а потом отменяеться
для мгновнного откл используйте $(elem).stop(1,1);


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