2

Jquery サイクル プラグインのスライドショーを再開しようとしていますが、X ミリ秒の遅延の後です。セットアップは、スライドショーがホバーされている間は再生し、そうでない間は一時停止します (他のコンテンツは基本的にその上にスクロールされます)。次のコードは、再開する前に遅延を登録していません。

どんな助けでも大歓迎です

<script type="text/javascript">
$(document).ready(function() {
// configure the cycle plugin
$('.slideshowtwo').cycle({
     fx:     'scrollUp',
     speed:   1000,
     timeout: 1200,
     pause:   0
});
$('.slideshowtwo').cycle('pause'); // pause it right away.

$('.slideshowtwo').hover(
    function() {
            $(this).delay(5000).cycle('resume'); // start playing after delay
    },
    function(){
        $(this).cycle('pause'); // pause the slideshow.
    }
).trigger('hover');

});
</script>
4

1 に答える 1

0

実行したいコードを遅延後に setTimeout 関数に入れてみてください。コードを編集して、一時停止を setTimeout にもラップしました。また、slideshowtwo クラスを変数に格納したので、セレクターを頻繁に呼び出さなくて済みます。これにより、パフォーマンスが向上するはずです。ただし、何らかの理由でクラスが削除され、要素に追加される場合は、動的に検索する必要があります。ただし、以下のコードは問題なく適合するはずです。

<script type="text/javascript">
$(document).ready(function() {
// configure the cycle plugin
var showTwo = $('.slideshowtwo');
showTwo.cycle({
     fx:     'scrollUp',
     speed:   1000,
     timeout: 1200,
     pause:   0
});
showTwo.cycle('pause'); // pause it right away.

showTwo.hover(
    setTimeout(function(){
        function() {
                showTwo.cycle('resume'); // start playing after delay
        },
        function(){
            showTwo.cycle('pause'); // pause the slideshow.
        }
    }, 5000)
).trigger('hover');

});
</script>
于 2012-06-25T16:29:21.617 に答える