在 2 个单独的 div 中将图像从一个更改为下一个
Making an image change from one to the next in 2 seperate divs
我正在尝试在我的网页上创建两个带有旋转图像的 div,这些 div 在一定秒数后变为另一个图像,并且有 3 个图像要显示。目前,我只是试图使用下面的代码来了解这项工作的机制,但尽管它很简单,但我无法让它工作。该代码与我之前使用的相同,但是这次它不想工作。几年前我最后做了,我完全忘记了如何做,研究也没有帮助。
我的代码如下。如果这个问题是特定于站点的,我还包含了一个 livelink HERE,一旦问题得到解答,我将删除它。 这两个 DIVS 是红色和黄色框。
JavaScript
var rotators = [
{ id: 'advert1', images: ['http://www.w3schools.com/html/html5.gif', 'http://www.w3schools.com/html/pic_mountain.jpg', 'http://www.w3schools.com/html/pic_graph.png'], selectedIndex: 0 },
{ id: 'advert2', images: ['http://www.w3schools.com/css/klematis_big.jpg', 'http://www.w3schools.com/css/klematis2_big.jpg', 'http://www.w3schools.com/css/klematis3_big.jpg'], selectedIndex: 0 }
];
var updateImages = function() {
for (var i=0; i < rotators.length; i++) {
var rotator = rotators[i];
rotator.selectedIndex++;
if (rotator.selectedIndex >= rotator.images.length) {
rotator.selectedIndex = 0;
}
document.getElementById(rotator.id).src = rotator.images[rotator.selectedIndex];
}
};
var timer = setInterval(updateImages, 1000);
</script>
HTML
<div id="main">
<div id="advert1"></div>
<div id="advert2"></div>
</div>
查看 Google Chrome 中的代码,我在控制台中看到以下错误:
Uncaught ReferenceError: $ is not defined | new.html:204
您似乎忘记在 html 页面中添加 jQuery。
您可以从以下页面的 CDN 获取它:http://code.jquery.com/
另一个问题是您正在尝试更新 img,但您的 DOM 元素是 div。
您应该替换以下代码:
<div id="main">
<div id="advert1"></div>
<div id="advert2"></div>
</div>
与:
<div id="main">
<img src="" id="advert1" />
<img src="" id="advert2" />
</div>
javascript在你写的地方执行,如果你写在元素之前,那么元素不存在。
您可以将代码附加到文档的 onReady 事件或将代码放在元素之后。
您正在尝试设置 div 源。您需要在每个 div 中有一个图像 (img) 元素,然后设置图像 src.
<div id="main">
<div>
<img id="advert1" alt="" src.../>
</div>
<div>
<img id="advert2" alt="" src.../>
</div>
</div>
另一种选择是使用 属性 或 class 属性 样式设置 div 背景图像(两者都使用 CSS 设置 JavaScript).
我正在尝试在我的网页上创建两个带有旋转图像的 div,这些 div 在一定秒数后变为另一个图像,并且有 3 个图像要显示。目前,我只是试图使用下面的代码来了解这项工作的机制,但尽管它很简单,但我无法让它工作。该代码与我之前使用的相同,但是这次它不想工作。几年前我最后做了,我完全忘记了如何做,研究也没有帮助。
我的代码如下。如果这个问题是特定于站点的,我还包含了一个 livelink HERE,一旦问题得到解答,我将删除它。 这两个 DIVS 是红色和黄色框。
JavaScript
var rotators = [
{ id: 'advert1', images: ['http://www.w3schools.com/html/html5.gif', 'http://www.w3schools.com/html/pic_mountain.jpg', 'http://www.w3schools.com/html/pic_graph.png'], selectedIndex: 0 },
{ id: 'advert2', images: ['http://www.w3schools.com/css/klematis_big.jpg', 'http://www.w3schools.com/css/klematis2_big.jpg', 'http://www.w3schools.com/css/klematis3_big.jpg'], selectedIndex: 0 }
];
var updateImages = function() {
for (var i=0; i < rotators.length; i++) {
var rotator = rotators[i];
rotator.selectedIndex++;
if (rotator.selectedIndex >= rotator.images.length) {
rotator.selectedIndex = 0;
}
document.getElementById(rotator.id).src = rotator.images[rotator.selectedIndex];
}
};
var timer = setInterval(updateImages, 1000);
</script>
HTML
<div id="main">
<div id="advert1"></div>
<div id="advert2"></div>
</div>
查看 Google Chrome 中的代码,我在控制台中看到以下错误:
Uncaught ReferenceError: $ is not defined | new.html:204
您似乎忘记在 html 页面中添加 jQuery。
您可以从以下页面的 CDN 获取它:http://code.jquery.com/
另一个问题是您正在尝试更新 img,但您的 DOM 元素是 div。 您应该替换以下代码:
<div id="main">
<div id="advert1"></div>
<div id="advert2"></div>
</div>
与:
<div id="main">
<img src="" id="advert1" />
<img src="" id="advert2" />
</div>
javascript在你写的地方执行,如果你写在元素之前,那么元素不存在。
您可以将代码附加到文档的 onReady 事件或将代码放在元素之后。
您正在尝试设置 div 源。您需要在每个 div 中有一个图像 (img) 元素,然后设置图像 src.
<div id="main">
<div>
<img id="advert1" alt="" src.../>
</div>
<div>
<img id="advert2" alt="" src.../>
</div>
</div>
另一种选择是使用 属性 或 class 属性 样式设置 div 背景图像(两者都使用 CSS 设置 JavaScript).