2

私は現在、このイラストのウェブサイトを担当しており、最近まで正常に機能していた画像ギャラリーがあります。それはスムーズなslideUpslideDownアニメーションを持っていて、誰もが幸せでした。その後、突然この滑らかさが機能しなくなり、画像がいたるところにシャッフルされます。おそらく、これは最近のJQueryの更新と関係があるのでしょうか、それとも私のコードで何かが明らかに間違っているのでしょうか?

これは、ここにある画像ギャラリーのJQueryです。

(function() {
    var nav = $('.nav div');
    var images = $('.images li');
    var imagebutton = $('.images li:not(:last) > img');
    $('.images li:first-child').slideDown(500);
    nav.click(function() {
        var imageno = nav.index(this);
        images.slideUp(500);
        images.eq(imageno).slideDown(500);
        return false;
    });
    imagebutton.click(function() {
        $(this).parent(images).slideUp(500).next().slideDown(500);
        return false;
    });
})();​

そして、あなたはここでライブの例を見ることができます:

http://www.gloryillustration.com/tests/nodland.html

4

2 に答える 2

3

slideUpおよびメソッドは非同期であるため、slideDown1つを呼び出すとすぐに、次のコード行が実行されます。つまり、上にスライドすると、アニメーションが終了する前に下にスライドします。ただし、これらの各メソッドにはコールバックがあり、アニメーションが完了するとコールバックが呼び出されます。次のようなものを試してください:

$('#el').slideUp(500, function() { $('#el2').slideDown(500); });

slideUpの2番目のパラメーターは、500ミリ秒のアニメーションの後に呼び出されます。

于 2012-10-23T19:31:22.067 に答える
0

同じ画像を繰り返し選択すると、遅延を入れてジャンプを修正します。

if ($(this).parent() != $(this).next().parent())
{
    $(this).parent(images).slideUp(500).next().delay(500).slideDown(500);
}
于 2012-10-23T19:48:48.547 に答える