[英]Change a div background image using javascript if/else
我正在尝试使div的背景图像每隔一段时间更改一次。 我用图像创建了一个数组,该函数应每隔几秒钟对照数组长度检查一次“ x”的值。 如果X较小,则x将增加1,并且背景图像将更改为数组中的下一个图像,否则它将设置x = 0并重新开始该过程。 div和初始图像显示了我想要的内容,但没有任何反应。
我知道可能有更好的方法可以做到这一点,但是我对Javascript还是很陌生,想了解为什么这段代码不起作用。 先谢谢您的帮助!!
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ImageChanger</title>
<style type="text/css">
#imagediv {
float:left;
border-style:ridge;
border-width:8px;
border-color:Green;
border-radius:15px;
width:1250px;
height:450px;
background-image:url(images/landscape1.jpg)
}
</style>
<script type="text/javascript">
function displayNextImage() {
var x;
If (x<imageArray.length) {
x=x+1;
document.getElementById("imagediv").style.backgroundImage=images[x];
}
else {
x=0;
document.getElementById("imagediv").style.backgroundImage=images[x];
}
function startTimer() {
setInterval(displayNextImage, 3000);
}
var imageArray=new Array();
images[0] = "images/landscape1.jpg";
images[1] = "images/landscape2.jpg";
images[2] = "images/landscape3.jpg";
images[3] = "images/landscape4.jpg";
</script>
</head>
<body>
<div id="imagediv">
</div>
</body>
</html>
If (x<imageArray.length) {..
应该
if (x<imageArray.length) {
Javascript 区分大小写 。
另外,您还有一些缺失的braces
例如您没有关闭
function displayNextImage() { ....
使用浏览器控制台进行调试。 这些语法错误将在此处显示。
就语法问题而言:
如@Zee所述, If
应该是小写字母( if
)
而且,正如@Zee和其他一些人所指出的,您并没有关闭function displayNextImage() {
带有右括号}
。
您在函数中定义了background-image
属性,而在CSS块中正确定义了background-image
属性。 您必须使用url()
包装图像名称。
您永远不会调用超时功能startTimer
。
您创建一个新的数组imageArray
,然后使用未声明的数组images
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.