延迟恢复jquery循环

时间:2012-06-25 16:08:32

标签: jquery slideshow cycle

我正在尝试恢复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>

1 个答案:

答案 0 :(得分:0)

尝试在setTimeout函数延迟后放置要运行的代码。我现在已经编辑了你的代码,以便将暂停包装到setTimeout中。此外,我已将幻灯片两个类存储到变量中,因此您不会经常调用选择器。这应该可以提高性能。但是,如果要删除类并将其添加到元素中,则应该返回以动态搜索它。下面的代码应该很适合你。

<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>