0

タブがクリックされたときに画像スライダーをスライド 1 にリセットする jquery コードがあります。問題は、それが即座に発生するため、タブがフェードアウトする前にリセット スライダーが少しちらつくことです。

フェードアウトするまで、リセットを約0.5秒「保持」したいと思います。

コードを「setTimeout」関数でラップする必要があると言われたので、これを行う方法について何らかの支援を期待しています。

私が話しているのは、このページの「作品」セクションです: www.oncreative.com.au

これは、スライダーをリセットするために必要なコードです。

<script>
    $('.reset').click(function() {
    $('.workslider').each(function() {
           var s = $(this).data('royalSlider');
           s.st.transitionSpeed = 0;
            s.goTo(0);
            setTimeout(function() {
                s.st.transitionSpeed = 600;
            }, 10); 
    });
    });
</script>

前もって感謝します!

4

2 に答える 2

3
setTimeout(function(){
 // your code here.
},500);

setTimeoutは2つの引数を取ります。1つ目はコード、2つ目は遅延する時間(ミリ秒単位)です。

于 2013-01-09T23:18:44.670 に答える
0

これは、動作中の簡単な例を提供する必要がある非常に基本的な jsFiddle ですsetTimeout: http://jsfiddle.net/A5dQn/

あなたの特定のケースでは:

// First you need to wrap the code you want to be
// executed when the timeout fires in a function:
function resetSliders () {
    $('.workslider').each(function() {
        var s = $(this).data('royalSlider');
        s.st.transitionSpeed = 0;
        s.goTo(0);
        setTimeout(function() {
            s.st.transitionSpeed = 600;
        }, 10); 
    });
};

// Then simply pass in a reference to your function to the setTimeout function.
$('.reset').click(function() { window.setTimeout(resetSliders, 500); } );

編集:明らかに、クリックイベント自体を添付するのではなく、クリックイベントで実行されるコードをタイムアウトでラップする必要があります。ごめん!

于 2013-01-09T23:19:57.807 に答える