JavaScript图像旋转

JavaScript图像旋转,javascript,arrays,function,Javascript,Arrays,Function,我希望这个问题适合于堆栈溢出。我在网上四处搜寻,查阅了一大堆书,但找不到这个问题的答案 我想使用我遇到的一些JavaScript(见下文)。我已经在一个网页中设置了脚本,它运行良好。。。但是,作为一名经验丰富的程序员,我并不完全理解它是如何工作的。我做了一些研究,但仍然无法破解代码中的几个部分 我知道它创建了一个数组,但这是一个多维数组吗 另外,我不明白为什么在setTimeout函数中“active”写为(“+active+”)(加号??): 设置超时(“图像旋转”(+活动+”),5000)

我希望这个问题适合于堆栈溢出。我在网上四处搜寻,查阅了一大堆书,但找不到这个问题的答案

我想使用我遇到的一些JavaScript(见下文)。我已经在一个网页中设置了脚本,它运行良好。。。但是,作为一名经验丰富的程序员,我并不完全理解它是如何工作的。我做了一些研究,但仍然无法破解代码中的几个部分

我知道它创建了一个数组,但这是一个多维数组吗

另外,我不明白为什么在setTimeout函数中“active”写为(“+active+”)(加号??):

设置超时(“图像旋转”(+活动+”),5000)

为什么单词两端的加号都是active?另外,active不应该是一个数字吗

谢谢

 <script type="text/javascript">

 var the_images = [];

 window.onload = function(){

 the_images.push(["http://www.adobe.com", "images/banner_1.jpg",      "Adobe"]);
 the_images.push(["http://www.microsoft.com", "images/banner_2.jpg", "Microsoft"]);
 the_images.push(["http://www.mozilla.org", "images/banner_3.jpg", "Mozilla"]);

 image_rotate(0);
 }

 function image_rotate(active){

 var image_container = document.getElementById("ad");


 image_container.innerHTML = "<a href=\""+the_images[active][0]+"\"><img    src=\""+the_images[active][1]+"\" alt=\""+the_images[active][2]+"\"   title=\""+the_images[active][2]+"\" /></a>";

 active++;

 if(active >= the_images.length){
 active = 0;
 }

 setTimeout("image_rotate("+active+")", 5000);

 }
 </script>

var_图像=[];
window.onload=函数(){
_images.push([“http://www.adobe.com“,”images/banner_1.jpg“,”Adobe“]);
_images.push([“http://www.microsoft.com","images/banner_2.jpg","Microsoft",;
_images.push([“http://www.mozilla.org","images/banner_3.jpg,"Mozilla",;
图像旋转(0);
}
功能图像旋转(活动){
var image_container=document.getElementById(“ad”);
image_container.innerHTML=“”;
active++;
如果(活动>=图像长度){
活动=0;
}
设置超时(“图像旋转”(+活动+”),5000);
}
看起来“图像”只是数组中的一组值,这些数组被推到另一个数组中(
图像[]

image\u rotate
函数获取一个整数/索引,并从
The\u images[]
中的该索引中适当地提取图像值,以创建链接和图像标记(例如,第一个元素是href,第二个元素是图像路径等)

然后,索引
active
将递增,如果它大于\u images[]中的图像值数组数,则将其设置为0(使其返回到开始/第一个图像)

setTimeout
是每5秒调用一次以保持其运行的程序。之所以有
+
符号,是因为值/索引被连接到字符串-通过这种方式setTimeout调用
image\u rotate(0)
active
的任何值

我可能遗漏了一些东西,但是这个函数看起来是递归的——它永远在调用自己(或者直到用户离开页面为止)

希望能有所帮助。

看起来“图像”只是数组中的一组值,这些数组被推到另一个数组中(
图像[]

image\u rotate
函数获取一个整数/索引,并从
The\u images[]
中的该索引中适当地提取图像值,以创建链接和图像标记(例如,第一个元素是href,第二个元素是图像路径等)

然后,索引
active
将递增,如果它大于\u images[]中的图像值数组数,则将其设置为0(使其返回到开始/第一个图像)

setTimeout
是每5秒调用一次以保持其运行的程序。之所以有
+
符号,是因为值/索引被连接到字符串-通过这种方式setTimeout调用
image\u rotate(0)
active
的任何值

我可能遗漏了一些东西,但是这个函数看起来是递归的——它永远在调用自己(或者直到用户离开页面为止)


希望能有所帮助。

图像是一个2D阵列。如果使用chrome之类的调试工具逐行检查每一行,并在控制台中查看每个变量的值,您将能够看到代码的工作方式

setTimeout("image_rotate("+active+")", 5000);
图像旋转函数采用数字参数。您在setTimeout函数中所做的是通过传递参数来调用它。这就是添加活动变量值后的实际情况

setTimeout("image_rotoate(1)", 5000);

(+)符号用于连接。javascript自动将活动数字变量转换为字符串。希望这有帮助

图像是2D阵列。如果使用chrome之类的调试工具逐行检查每一行,并在控制台中查看每个变量的值,您将能够看到代码的工作方式

setTimeout("image_rotate("+active+")", 5000);
图像旋转函数采用数字参数。您在setTimeout函数中所做的是通过传递参数来调用它。这就是添加活动变量值后的实际情况

setTimeout("image_rotoate(1)", 5000);

(+)符号用于连接。javascript自动将活动数字变量转换为字符串。希望这对您有所帮助

在开始修改代码之前,您可能应该尝试阅读一些有关JavaScript的教程。这是给JavaScript一个非常坏的名字的原因之一。它实际上是一种非常深刻和复杂的语言,人们只是“剪切和粘贴”功能造成了很多负面印象

也就是说,我将帮助您解决问题,希望您能够更好地理解这段代码

是,正在此行创建数组(不,它不是多维数组):

var the_images = [];
setTimeout("image_rotate("+active+")", 5000);
setTimeout("image_rotate("+active+")", 5000);
var
表示“我要声明一个变量”
图像
是数组的名称,
[]
称为数组文字或数组初始值设定项。它正在将\u图像初始化为空数组。(例如,如果您改为编写
var the_images=[1,'hello',false];
,它将使用三个元素对其进行初始化,即数字、字符串和布尔值。)

数组有一个名为
push
的函数,它将元素添加到数组的末尾。因此,您将在以下几行中看到向数组添加元素:

the_images.push(["http://www.adobe.com", "images/banner_1.jpg", "Adobe"]);
the_images.push(["http://www.microsoft.com", "images/banner_2.jpg", "Microsoft"]);
the_images.push(["http://www.mozilla.org", "images/banner_3.jpg", "Mozilla"]);
请注意,您正在将数组添加到数组中,这可能是您得到这些数组是多维数组的印象的地方(数组的数组在技术上是多维的)
var debugString = "image_rotate("+active+")";
setTimeout( debugString );
console.log( debugString );
var image = the_images[0]
html = "<a href='" + image[0] + "'><img src='" + image[1] + "' title='" + image[2] + "'></a>"