我正在手动编写幻灯片脚本,而不是使用其他现成的软件包。原因是在我的幻灯片放映中,一些幻灯片可能是图像,一些可能是视频,一些可能是交互式的。所以我自己就是在解决这个问题。
我遇到时间问题。我正在编写循环scritps来查询数据库以获取所有幻灯片,然后循环并显示每个幻灯片:
while(jslideNumber <= numberOfSlides){
$('.slide'+jslideNumber).delay(jslideNumber*8000).fadeIn(1000).delay(5000).fadeOut(1000).delay(2000);
jslideNumber++;
console.log("jslideNumber: "+jslideNumber)
}
问题是在这个例子中有5张幻灯片。上面的脚本同时显示全部5个,延迟5秒,然后同时隐藏它们。我究竟做错了什么?像任何其他幻灯片一样,这应该一次显示一张幻灯片,等待,隐藏,然后显示下一张幻灯片。
好的:编辑感谢下面的一位绅士,我确实有一个脚本可以显示特定时间的单个图像,但是控制台日志会在第一张幻灯片显示之前列出所有6个jslideNumbers。这意味着所有6个都已加载,脚本甚至尚未启动。有了这个,如果有300张幻灯片怎么办?
我更喜欢的是
Show Slide 1
wait 30 10sec
log slide 1
show Slide 2
wait 30sec
log slide 2
...
相反,上面的脚本真正做的是:
Log Slide1
Log Slide2
Log Slide3 ...
Show Slide 1
Hide SLide 1
Show Slide 2
Hide Slide 2 ...
答案 0 :(得分:0)
嗯,有很多方法可以做到,但是现在,你告诉所有幻灯片做同样的事情。与我所能想到的最接近的东西可能是:
while(jslideNumber <= numberOfSlides){
$('.slide'+jslideNumber).delay(jslideNumber*8000).fadeIn(1000).delay(5000).fadeOut(1000).delay(2000);
jslideNumber++;
console.log("jslideNumber: "+jslideNumber)
}
假设jslideNumber以0开头(正如任何优秀的程序员所做的那样)。
有很好的方法,所以使用setTimeout或setInterval,但也许你可以理解这一点。