Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将增量值插入循环数组_Javascript - Fatal编程技术网

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请求,而不是200Try
var 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++;
}