JQuery MouseEnter/Leave с мерцанием fadeIn()

Я программирую раздел веб-сайта с помощью jquery, где, когда вы наводите указатель мыши на кнопку, он скрывает определенный div и показывает другой, затем, когда мышь уходит, он скрывает этот и показывает оригинал, и он отлично работает, но когда вы пройдитесь по кнопкам, чтобы быстро, он начинает мерцать и начинает показывать все div (некоторые не скрывает)

Мой код:

function changeAddPanelText(element, element2) {
    $(element).hover(function(){
        $("#add-content-desc1").toggle();
        $(element2).fadeIn(700);
    },

    function(){
        $(element2).toggle();
        $("#add-content-desc1").fadeIn(700);
    });
}

Любые идеи ? Благодарность

Изменить: я обновил код до текущей версии.


person flaiks    schedule 08.05.2012    source источник
comment
Попробуйте использовать stop() или stop(1,1), дополнительную информацию можно найти в jQuery API.   -  person elclanrs    schedule 08.05.2012
comment
Еще один хорошо работающий метод — скрыть один div под оригиналом. Затем, когда вы наведете курсор мыши, просто скройте оригинал. Таким образом, не будет отображаться пустая страница, а только два изображения.   -  person JakeParis    schedule 08.05.2012
comment
У меня была похожая ситуация, и stop() может помочь решить проблему. Проверьте это stackoverflow.com/q/6224681/707636   -  person Bongs    schedule 08.05.2012
comment
это происходит потому, что каждый раз, когда вы наводите курсор, анимация срабатывает, попробуйте поиграть с остановкой (1,1) или изменить 1 на 0. У меня была такая же проблема, мне пришлось поиграть с функцией остановки, чтобы исправить это   -  person Huangism    schedule 08.05.2012
comment
работал с stop(1,1) перед fadeIn()   -  person flaiks    schedule 09.05.2012


Ответы (1)


Попробуй это

function changeAddPanelText(element, element2) {
    $(element).hover(function(){
        $("#add-content-desc1, element2").stop().toggle();
    }, function(){
        $("#add-content-desc1, element2").stop().toggle();
    });
}
person Bongs    schedule 08.05.2012