如果/ else,使用javascript更改div背景图像

时间:2015-05-22 12:21:08

标签: javascript html css

我试图让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>

2 个答案:

答案 0 :(得分:2)

  If (x<imageArray.length) {..

应该是

 if (x<imageArray.length) {

Javascript是 case-sensitive

你还有一些遗漏braces,就像你没有关闭一样

function  displayNextImage() { ....

使用浏览器控制台进行调试。这些语法错误将在那里显示。

答案 1 :(得分:0)

就语法问题而言:

  1. 正如@Zee所述,If应为小写(if

  2. 此外,正如@Zee和其他一些人所述,您并未使用右括号function displayNextImage() {关闭}

  3. 您在函数中未正确定义background-image属性,而您在CSS块中正确定义了它。您必须使用url()包装图像名称。

  4. 您永远不会调用超时功能startTimer

  5. 您创建了一个新数组imageArray,但随后使用未声明的数组images