gpt4 book ai didi

jquery - 暂停每个淡入淡出循环

转载 作者:行者123 更新时间:2023-12-01 05:54:15 29 4
gpt4 key购买 nike

我在 jquery 中有一个 .each 循环,可以淡出图像以在背景中显示它们。每个后续图像都会分配一个增加的延迟。是否可以通过点击来暂停这样的循环?

 <?php
$ttlart = count($rows);
echo "var ttlart = " . $ttlart . ";";
foreach ($rows as $ro) {
$fadedur = $ro['fadedur'];
echo "fadedur = " . $fadedur . ";";
$staysonscreen = $ro['staysonscreen'];
echo "staysonscreen= " . $staysonscreen . ";";
$order = $ro['order'];
echo "order= " . $order. ";";
echo "$(\"#" . $order . "\").css(\"font-size\",fadedur);";
echo "$(\"#" . $order . "\").css(\"text-indent\",staysonscreen);";
//echo "alert(\"here\");";
}
?>

var artdelay = 0;
var playstop = 0;
var ctr = 1;

$($("#images img").get().reverse()).each(function(){
fadedur = parseInt($(this).css("font-size"));
staysonscreen = parseInt($(this).css("text-indent"));
artdelay = artdelay+staysonscreen;

if (ctr < ttlart){
$(this).delay(artdelay).fadeOut(fadedur);
artdelay = artdelay+fadedur;

$(".jp-controls").click(function(){

if(playstop == 0){
$("#images img").stop(true);
playstop = 1;
}else{ //alert(artdelay);
$("#images img").delay(artdelay).fadeOut(fadedur);
playstop = 0;}

});

ctr=ctr+1;}
});

最佳答案

您也许可以执行以下操作:

http://jsfiddle.net/EJ6Yg/

$(document).ready(function () {
var delay = 200;
$('div').each(function () {
$(this).delay(delay).fadeOut('slow');
delay *= 1.5;
});
});

当然,将 div 替换为图像的一些选择器。

阅读您的更新后,我想我看到了问题 - 您正在使用 delay() 但您希望能够暂停或停止动画。

jQuery API特别提到这一点:

The .delay() method is best for delaying between queued jQuery effects. Because it is limited—it doesn't, for example, offer a way to cancel the delay—.delay() is not a replacement for JavaScript's native setTimeout function, which may be more appropriate for certain use cases.

我相信这是一个 setTimeout 更合适的用例。

关于jquery - 暂停每个淡入淡出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17681256/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com