Небольшой вопросик по jquery

RM
На сайте с 21.06.2011
Offline
77
725

Есть функции на jquery mouseover и mouseout, пот если через них организовать что-то подобное:

$(document).ready(function() {

$("#head_menu").mouseover(function() {
$('#head_menu').fadeTo('slow', 1);
}).mouseout(function(){
$('#head_menu').fadeTo('slow', 0.3);
});
});

То при просмотре, если провести мышкой много раз по элементу с id head_menu то он будет выполнять fadeto очень много раз и это создает эффект мерцания элемента. как это обойти?

C
На сайте с 20.05.2011
Offline
14
#1

$("#head_menu").mouseenter(...

RM
На сайте с 21.06.2011
Offline
77
#2
cryptex:
$("#head_menu").mouseenter(...

И что изменится? Это только разные способы реализации, а проблема одна и та же...

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#3

Не наблюдаю заявленной проблемы

http://jsfiddle.net/nXvgM/1/

RM
На сайте с 21.06.2011
Offline
77
#4
Алексей Барыкин:
Не наблюдаю заявленной проблемы
http://jsfiddle.net/nXvgM/1/

Поводите мышкой туда-сюда над элементом и увидите что потом он будет мигать...

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#5
RoMaN444Ik:
Поводите мышкой туда-сюда над элементом и увидите что потом он будет мигать...

Поводил, не выходя за границы - не мигает.

Браузер - Firefox

ageruuu
На сайте с 14.11.2010
Offline
52
#6

он будет мигать столько раз, сколько провели по нему мышкой.

RM
На сайте с 21.06.2011
Offline
77
#7
ageruuu:
он будет мигать столько раз, сколько провели по нему мышкой.

Вот вот! А как это обойти?

RoMaN444Ik добавил 31.08.2011 в 15:33

Алексей Барыкин:
Поводил, не выходя за границы - не мигает.
Браузер - Firefox

Это если не выходить за границы, а если выходить - то будет мигать!

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#8
RoMaN444Ik:

Это если не выходить за границы, а если выходить - то будет мигать!

Ну так по коду и должно быть.

Надо останавливать анимацию предыдущего события.

http://jsfiddle.net/nXvgM/4/

C
На сайте с 20.05.2011
Offline
14
#9

$("#head_menu").stop(true, true).mouseenter(function() {

$('#head_menu').fadeTo('slow', 1);

}).mouseout(function() {

$('#head_menu').stop(true, true).fadeTo('slow', 0.3);

});

RM
На сайте с 21.06.2011
Offline
77
#10
Алексей Барыкин:
Ну так по коду и должно быть.
Надо останавливать анимацию предыдущего события.
http://jsfiddle.net/nXvgM/4/

Вот так работает! Спасибо!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий