Javascript 将增量值插入循环数组
现在,我正在通过使用Javascript 将增量值插入循环数组,javascript,Javascript,现在,我正在通过使用setInterval(showNextSlide,100)将多个图像串在一起来设置图像动画并且它工作得非常好 我遇到的唯一问题是在var slides=[src,]while循环中动态添加值,而while循环只是加载最终图像 此外,图像的保存方式是增量移动到下一个零,因此01009转换为01010每当我使用循环时,它将转换为010010请注意末尾的额外零 Javascript window.onload = function() { var img = 0 whil
setInterval(showNextSlide,100)将多个图像串在一起来设置图像动画代码>并且它工作得非常好
我遇到的唯一问题是在var slides=[src,]
while循环中动态添加值,而while循环只是加载最终图像
此外,图像的保存方式是增量移动到下一个零,因此01009
转换为01010
每当我使用循环时,它将转换为010010
请注意末尾的额外零
Javascript
window.onload = function() {
var img = 0
while (img < 15) {
img++;
}
var src = 'assets/images/earth/Sequence%0100' + img + '.jpg.';
var slides = [src, ],
index = 0,
timer = 0;
// Show the first slide
showNextSlide();
// Show "next" slide every five seconds
timer = setInterval(showNextSlide, 100);
// The function we call to show the "next" slide
function showNextSlide() {
if (index >= slides.length) {
index = 0;
}
document.getElementById('earth').src = slides[index++];
}
};
window.onload=function(){
var img=0
而(img<15){
img++;
}
var src='assets/images/earth/Sequence%0100'+img+'.jpg';
变量幻灯片=[src,],
指数=0,
定时器=0;
//放映第一张幻灯片
showNextSlide();
//每五秒钟放映一次“下一张”幻灯片
定时器=设置间隔(showNextSlide,100);
//我们调用此函数以显示“下一张”幻灯片
函数showNextSlide(){
如果(索引>=幻灯片长度){
指数=0;
}
document.getElementById('earth').src=slides[index++];
}
};
试试这个:它会根据索引值不断更改地球的图像src
根据JEES的评论进行更新
window.onload=函数(){
变量i=0
var=[];
而(i<200){
如果(i请尝试:
var img = 0;
var slides = new Array();
while (img < 5) {
img++;
var src = 'assets/images/earth/Sequence%0100' + img + '.jpg';
slides.push(src);
}
var-img=0;
var slides=newarray();
而(img<5){
img++;
var src='assets/images/earth/Sequence%0100'+img+'.jpg';
滑动推送(src);
}
这是答案的一部分,当img
值为9
或99
时,它将修复它,因为他有200张图像,如果图像数>1000,当img
值999
时,他将需要另一张图像。请告诉我是否应该删除此答案:
更新:
var img = 0;
while(img < 200) {
if (img < 10) { imgURL = '0100' + img; }
else if (img < 100) { imgURL = '010' + img;}
else { imgURL = '01' + img; }
slides.push('assets/images/earth/Sequence%' + imgURL + '.jpg');
img++;
}
var-img=0;
而(img<200){
如果(img<10){imgURL='0100'+img;}
如果(img<100){imgURL='010'+img;}
else{imgURL='01'+img;}
slides.push('assets/images/earth/Sequence%'+imgURL+'.jpg');
img++;
}
检查此项以查看其运行情况。为什么不将图像制作为一个包含一整套较小图像的sprite图像,并将其宽度或高度分别偏移x
或y
,从而将http请求减少到最低限度,而不会只生成最终图像这就像是200幅图像:(@JEES和该文件将是大的方式它是ok的,文件大小几乎与整个小图像集相同,但只有1个http请求,而不是200Tryvar slides=[],i=0,noOfImages=200;而(i
@Tushar,这不能解决01009
将变为010010
这很好,但是当它超过10时呢?@Suchit,当img是01009时,img++将是010010,所以他需要sme条件语句来解决它。类似这样的var img=(i<10)?'0100'+i++:'010'+i++;slides.push('assets/images/earth/Sequence%'+img+'.jpg');
当img=9
和img=99
考虑到图像数量为200“0000”。substr(num.toString().length)+num是一种更简单的向数字添加填充的方法。这仍然无法解决此帖子的第二个问题。如果可以的话,只需发布完整的代码,这样我就知道要接受哪个答案接受他的答案并修改你的代码,包括这一个,或者他可能修改他的答案以便你接受it@NooBskie,我已经更新了这个代码段,现在它正在运行ode>当
工作时,我的错误是我没有在它之前设置img=0
!
var img = 0;
while(img < 200) {
if (img < 10) { imgURL = '0100' + img; }
else if (img < 100) { imgURL = '010' + img;}
else { imgURL = '01' + img; }
slides.push('assets/images/earth/Sequence%' + imgURL + '.jpg');
img++;
}