2012-06-25 303 views
2

我想恢复jquery循环插件幻灯片,但只有延迟X毫秒后。该设置用于幻灯片放映时播放,暂停播放(而其他内容基本上滚动播放)以下代码在重新开始播放之前没有记录延迟延迟jquery循环延迟

任何帮助非常感谢

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

回答

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

不幸的是,改变它以打破暂停功能,但我喜欢这个主意! – Rockafella

+0

将暂停功能也移到setTimeout函数的主体中。 – bilalq