【问题标题】:I'am using this code to slide through images in javascript我正在使用此代码在 javascript 中滑动图像
【发布时间】:2014-08-27 14:49:39
【问题描述】:
function call()
{
var i=0,
img=document.getElementById("img1");
for(i=1;i<=3;i=i++)
{
setInterval(function(){
img.src="Images/"+i+".jpg";
},3000);
}
}
网页上没有显示任何内容。图像名称是正确的。执行代码时计算机挂起。
【问题讨论】:
标签:
javascript
image
transition
slide
【解决方案1】:
i=i++
这不是增加i 的正确用法。
这是做什么的:
- 变量
i 递增++。
- 变量
i 被分配旧值i,因为i++ 返回旧值i。
所以基本上,你陷入了无限循环。只需将i=i++ 替换为i++ 或i=i+1 或i+=1 就可以了。
再次查看您的代码,我必须告诉您,这仍然不会产生预期的效果,因为您将所有间隔设置为同时触发。你想要做的看起来像这样:
function next() {
setInterval(function(){
//display next image
},3000);
next();
}
next();
根据您的 html 代码的构建方式,最简单的实现方法是:
var count = 3; current = 0, img=document.getElementById("img1");
function next() {
setInterval(function(){
current++;
if(current >= count) {
current = 0;
}
img.src="Images/" + current + ".jpg";
},3000);
next();
}
next();
【解决方案2】:
关于你的代码角度..试试下面的。
function call(){
var i=0;
setInterval(function(){
document.getElementById("pics").innerHTML="<img src='img"+i+".jpg' width=300 height=300 alt='image' /> ";
i++;
if(i>=3){
i= i%3;
}
},3000);
}
"pics" 是在 html 页面中声明的 div 标签。