首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript timelapse-effect:每秒显示30张图片(更多细节请阅读)

Javascript timelapse-effect:每秒显示30张图片(更多细节请阅读)
EN

Stack Overflow用户
提问于 2010-01-24 20:23:00
回答 1查看 5.9K关注 0票数 2

我有一个客户,他为他的投资组合网站制作了一个“视觉日记”,每天拍摄一次,持续365天。他想让我把这些放到一个延时特效片里。我考虑过使用闪存,但最终还是选择了JavaScript。

需要发生的是:图像循环非常快,没有过渡或任何东西,只有图像-图像-图像等等。大约30/fps或类似的东西。当您单击闪烁的图像时,它会停在您选择的图像上,以便用户可以查看。再次单击时,幻灯片将重新开始播放。

我的问题是我是一个对JavaScript一窍不通的家伙。我可以很高兴地将它集成到任何页面中,但它只是在编写JavaScript代码,这让我很困扰。

在他的主页上,我有这个代码用来显示一个基本的幻灯片--有过渡效果等。它是在HTML中,但你可以理解代码,我敢肯定:

代码语言:javascript
复制
<!-- Code for slideshow -->
<!-- Found on http://www.webdeveloper.com/forum/showthread.php?t=81441 -->

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
// Set slideShowSpeed (milliseconds)
var slideShowSpeed = 3000;
// Duration of crossfade (seconds)
var crossFadeDuration = 3;
// Specify the image files
var Pic = new Array();
// to add more images, just continue
// the pattern, adding to the array below

Pic[0] = '1.jpg'
Pic[1] = '2.jpg'
Pic[2] = '3.jpg'
Pic[3] = '4.jpg'
Pic[4] = '5.jpg'
Pic[5] = '6.jpg'
Pic[6] = '7.jpg'
Pic[7] = '8.jpg'
Pic[8] = '9.jpg'
Pic[9] = '10.jpg'
Pic[10] = '11.jpg'
Pic[11] = '12.jpg'
Pic[12] = '13.jpg'
Pic[13] = '14.jpg'
Pic[14] = '15.jpg'
Pic[15] = '16.jpg'
Pic[16] = '17.jpg'
Pic[17] = '18.jpg'
Pic[18] = '19.jpg'
Pic[19] = '20.jpg'

// do not edit anything below this line
var t;
var j = 0;
var p = Pic.length;
var preLoad = new Array();
for (i = 0; i < p; i++) {
preLoad[i] = new Image();
preLoad[i].src = Pic[i];
}
function runSlideShow() {
if (document.all) {
document.images.SlideShow.style.filter="blendTrans(duration=2)";
document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)";
document.images.SlideShow.filters.blendTrans.Apply();
}
document.images.SlideShow.src = preLoad[j].src;
if (document.all) {
document.images.SlideShow.filters.blendTrans.Play();
}
j = j + 1;
if (j > (p - 1)) j = 0;
t = setTimeout('runSlideShow()', slideShowSpeed);
}
//  End -->
</script>

有没有办法修改这段代码,以关闭所有过渡效果,并使它停止播放时,你点击它/再次启动它?否则,引用一些不同的代码会很有帮助。

谢谢大家!

杰克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-24 20:31:49

您似乎正在使用特定于IE的代码。我建议使用专用JavaScript库中的各种效果模块,如MooTools (我个人最喜欢的)、jQueryPrototype + script.aculo.us

要停止幻灯片,您应该能够简单地清除timeout t

代码语言:javascript
复制
clearTimeout(t);

此外,您不应该引用setTimeout的第一个参数。将函数引用传递给它:

代码语言:javascript
复制
setTimeout(runSlideShow, slideShowSpeed);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2126994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档