Jquery остановить ранее определенное действие - PullRequest
0 голосов
/ 04 ноября 2011

Я просмотрел все эти сообщения: jQuery stop fadein во время fadeout jQuery stop action "click" после первых одиннадцати остановка анимации jQ Отмените все анимации jQuery slideUp и slideDown в очереди

И многое другое, но я не могу заставить его работать на моем сайте.

В основном я установил горячие клавиши Jquery длясоздавать ярлыки на моем сайте.Когда пользователь нажимает горячую клавишу, div должен fadeIn, показывая пользователю его ярлык, а затем через секунду исчезать.

Моя проблема в том, что я не могу заставить его работать идеально и плавно.Код см. В jsfiddle: http://jsfiddle.net/M7j9Y/2/

(На панели JS, пожалуйста, прокрутите вниз, чтобы пропустить плагин для горячих клавиш. Мой код в самом конце)

Если вы нажметебыстро и чередуя «Alt + f» и + Alt + s », вы увидите, что эффект затухания действует очень странно, а иногда даже не работает.

Вся помощь очень ценится и благодарит зазаранее

1 Ответ

1 голос
/ 04 ноября 2011

Похоже, вы поставили задержку там по какой-то причине. не уверен почему. Попробуйте вместо этого

$('#hotkeys_display').html(text).fadeTo('fast',0.3).fadeOut('fast'); Это, кажется, работает нормально для меня.

Вы также можете сделать что-то вроде

$('#hotkeys_display').stop().html(text).fadeTo('fast',0.3).fadeTo('slow', 0.0);

Просто чтобы немного замедлить это. Вы можете оставить fadeOut, но мне всегда нравится использовать fadeTo, потому что он устанавливает css.

http://jsfiddle.net/M7j9Y/8/ это исчезнет и установит дисплей на нет. Таким образом, он полностью исчезнет, ​​но вы сможете быстро двигаться вперед и назад, не замечая никаких мерцаний.

    $('#hotkeys_display').stop(true).html(text).fadeTo('fast',0.3)
        .fadeTo('slow', 0.0, function(){
            $(this).css('display','none');
     });
...