0

http://jsfiddle.net/nicktheandroid/QSdUz/5/

私は LI のリストを持っています。私はそれらを右の 15 ピクセルにアニメーション化しようとしています。問題は、最初の LI を開始してから 45 ミリ秒後に次の LI がアニメーション化することです (最初の LI は、次の LI が開始されたときにまだアニメーションの途中にあります)。現在、最初のものが完了するまで待ってから、次のものがアニメーション化されますが、これは間違っています。

この機能を上で説明したように修正する方法を誰か教えてもらえますか?

$('UL').hover(function(){

    doSlide($('UL li:first'))

}, function() {

    doReverseSlide($('UL li:first'))

})

function doSlide(current) {
    $(current).animate({
        right:0
    },200).delay(45, function(){
            doSlide($(current).next('li'));           
    }) 


}
4

2 に答える 2

0
function doSlide(current) {
    $(current).animate({
        right:0
    },200);
    // mix some javascript in with your jQuery ;)
    setTimeout(function(){
            doSlide($(current).next('li'));           
    },45);
}

http://jsfiddle.net/QSdUz/6/

そしてリバースで

http://jsfiddle.net/QSdUz/7/

... 私はその効果が好きです。自分で何かに使うかもしれません。

于 2011-07-08T10:43:46.433 に答える
0

次のように遅延を増やして、すべてのアニメーションを一度にスケジュールできます。

function doSlide() {
    window.slideOffset = 0;
    jQuery.each($("li"), function() {
        setTimeout($(this).animate, window.slideOffset, {right:0}, 200);
        window.slideOffset += 45;
    });
}

こちら でsetTimeout()説明されているように、これを IE で正しく機能させるにはパッチを適用する必要がある場合があることに注意してください。

于 2011-07-08T10:45:15.520 に答える