Javascript 如何让3个div每秒从自己的文件夹中更改图像?
我希望有3个div每秒更改一次它的映像。这段代码不调用任何错误,但唯一有效的是源代码为script9.js的第3个div。为什么会这样?请帮忙。。。这是: 我有3次潜水,其中包含来自自己文件夹的图像:Javascript 如何让3个div每秒从自己的文件夹中更改图像?,javascript,php,jquery,asp.net,html,Javascript,Php,Jquery,Asp.net,Html,我希望有3个div每秒更改一次它的映像。这段代码不调用任何错误,但唯一有效的是源代码为script9.js的第3个div。为什么会这样?请帮忙。。。这是: 我有3次潜水,其中包含来自自己文件夹的图像: <html> <head> <script type="text/javascript" src="mainjavascript.js"></script> <script type="text/javascript" src="scr
<html>
<head>
<script type="text/javascript" src="mainjavascript.js"></script>
<script type="text/javascript" src="script8.js"></script>
<script type="text/javascript" src="script9.js"></script>
</head>
<body onload = "startTimer()">
<div><img id="img" src="pictures7/1.jpg">7</div>
<div><img id="img2" src="pictures8/1.jpg">8</div>
<div><img id="img3" src="pictures9/1.jpg">9</div>
</body>
</html>
7.
8.
9
我有3个类似的JavaScript文件,每个div对应一个文件,通过ID获取元素唯一的区别是“***”符号:
函数显示图像(图像){
document.getElementById(**“img”**)。src=image;
}
函数displayNextImage(){
x=(x==images.length-1)?0:x+1;
显示图像(图像[x]);
}
函数displayPreviousImage(){
x=(x您多次重复相同的函数定义;给它们不同的名称。您在三个文件中声明了相同的函数。但是,函数本身都是在全局范围内创建的,因此每个JS文件都会覆盖上一个文件。您可以使用Chrome中的开发者控制台验证这一点
您希望保持代码干燥-不要重复自己的代码。因此,请尝试仅使用在页面加载上运行的一个函数重写此代码,并将剩余的三个文件合并为一个文件。这会使此文件上升,这只会在数组中循环,如果它试图超出数组,则会重置为第一个图像
var images = ['create an array of pictures']
var currentimage = 0;
function loop() {
currentimage++;
if(currentimage > images.length){
currentimage = 0;
}
setimage();
}
function setImage() {
document.getElementById('image').src = images[currentImage];
}
setInterval(loop, 1000);
你能给我举个例子吗?我已经在这个问题上纠缠了好几个小时了。这就是我所有的js。我怎么能不重复相同的功能呢?我如何使这些功能不同,这样它才能工作。我对此很陌生。我有点困惑。你在重复相同的功能。你应该使用一组函数,并将它们作为变量传递给图像文件夹路径。
function displayImage(image) {
document.getElementById(**"img2"**).src = image;
}
function displayNextImage() {
x = (x == images.length - 1) ? 0 : x + 1;
displayImage(images[x]);
}
function displayPreviousImage() {
x = (x <= 0) ? images.length - 1 : x - 1;
displayImage(images[x]);
}
function startTimer() {
setInterval(displayNextImage, 1000);
}
var images = [], x = -1;
images[0] = **"pictures8/"** + "1.jpg";
images[1] = **"pictures8/"** + "2.jpg";
for(var y=2;y<4;y++){
images[y]= **"pictures8/"** + (y+1) + ".jpg";
}
function displayImage(image) {
document.getElementById(**"img3"**).src = image;
}
function displayNextImage() {
x = (x == images.length - 1) ? 0 : x + 1;
displayImage(images[x]);
}
function displayPreviousImage() {
x = (x <= 0) ? images.length - 1 : x - 1;
displayImage(images[x]);
}
function startTimer() {
setInterval(displayNextImage, 1000);
}
var images = [], x = -1;
images[0] = **"pictures9/"** + "1.jpg";
images[1] = **"pictures9/"** + "2.jpg";
for(var y=2;y<4;y++){
images[y]= **"pictures9/"** + (y+1) + ".jpg";
}
var images = ['create an array of pictures']
var currentimage = 0;
function loop() {
currentimage++;
if(currentimage > images.length){
currentimage = 0;
}
setimage();
}
function setImage() {
document.getElementById('image').src = images[currentImage];
}
setInterval(loop, 1000);