jquery animate (bir nechta element) navbat

Animatsiya qilingan bir nechta element bor. Agar siz pastki menyudan tez orqaga va orqaga qaytsangiz, navbat bor va eng yomon holatda funksiya buzuq ko'rinadi. Men allaqachon stop() , delay() , : jonlantirilgan ni sinab ko'rdim.

Buni amalga oshirish uchun nimani tavsiya qilasiz?

jQuery('.submenu').hover(
    function(){
    jQuery(this).find('.ico').delay(100).animate({
        height: 24
        }, 'fast', function() {
            jQuery(this).parents('.submenu').find('ul').animate({
                height: 'toggle'
                }, 'slow', function() {
            });
    });

},
function(){
    jQuery(this).find('ul').delay(100).animate({
        height: 'toggle'
        }, 'fast', function() {
            jQuery(this).parent().find('a.submenuItem .ico').animate({
                height: 18
                }, 'fast', function() {
                });
    });
});

HTML


0
Odatda bu kabi vaziyatlarda stop() ni ishlataman. Agar siz jsFiddle hosil qilsangiz, men sizning kodingiz atrofida siqib chiqaraman.
qo'shib qo'ydi muallif maxedison, manba
@maxedison Men harakat qilaman!
qo'shib qo'ydi muallif lijn, manba
qo'shib qo'ydi muallif lijn, manba

3 javoblar

This question is never really resolved. So.. In meantime I have used some extra script as plugin and this helped. The animation is feeling much better now and it seems that it doesn't get the time to get stuck. The extra script is hoverIntent: http://cherne.net/brian/resources/jquery.hoverIntent.html

1
qo'shib qo'ydi

.ClearQueue() usulini sinab ko'rdingizmi?

clearQueue() hujjatlari

1
qo'shib qo'ydi
Sizning javobingiz uchun rahmat. Men jQuery (bu) ni sinab ko'rdim.find ('. Ico') .. stop (rost, false) .animate ... barcha variantlarda .. Men jQuery (this) .find ('. Ico') ni sinab ko'rdim. clearQueue() .. animatsiya .. Hujjatlarni tezda o'qib chiqdim, men uni to'g'ri ishlatganmikin deb ishonmayman. Lekin bu bir oz yordam beradi, lekin ba'zida bu tiqilib qoladi va yana ochilmaydi ... Men buni hech qachon o'rnatmasligim kerakligiga ishonchim komil emas.
qo'shib qo'ydi muallif lijn, manba
Men allaqachon ta'limni o'rganish uchun linkni sinab ko'rdim, bu juda yaxshi yordam deb o'ylardim va bu yaxshi maqola, lekin bu menga bu vaziyatga yordam bermadi.
qo'shib qo'ydi muallif lijn, manba
Ishingiz uchun tashakkur. Bu quyruqdan boshqa narsaga o'xshashdir. Lekin jonlantiradigan yana ko'p narsalar bor va men buning ehtimolmi? Men bu kunning boshida jsfiddle ni ko'rdim. Men uni yangilab turgandek tuyuladi, men uni o'zgartirishga muhtoj bo'lgan barcha narsalarni yaxshiroq ko'rish uchun ba'zi CSS qo'shishga harakat qilaman .. Men sizga xabar beraman.
qo'shib qo'ydi muallif lijn, manba
jsfiddle.net/qGG53/11 Men skriptni sharhga qo'ydim harakat qilmoqda. Ba'zi vaqt masalasi bo'lishi mumkin. Ba'zan u bir lahzaga to'xtaydi yoki men uni tezda tark etsam, ko'rinadigan qoladi. Lekin, ehtimol, uni slide() bilan sinab ko'rishim kerak?
qo'shib qo'ydi muallif lijn, manba
Bundan tashqari, stop() usuli siz xohlagan narsani bajarishi kerak - learningjquery.com/2009/01/…
qo'shib qo'ydi muallif 0x6C77, manba
Mana, siz nima qilmoqchi ekaningizni o'ylayotgandek, ne'matni tatbiq qiladigan jsfiddle ... lekin bu sizning muammoingizni hal qilmaydi. Agar siz kutganingizdek harakat qilsa, buni tasdiqlash/inkor eta olasizmi - jsfiddle.net/qGG53
qo'shib qo'ydi muallif 0x6C77, manba

JQuery Dablantiruvchi hamma narsani bajaradi:

https://github.com/diaspora/jquery-debounce

Bundan tashqari, yuqorida aytib o'tilganidek, .clearQueue() ga asoslangan o'z echimingizni yozishingiz mumkin.

0
qo'shib qo'ydi