2012-06-25 343 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