簡體   English   中英

使JavaScript每5秒更改一次背景圖片

[英]Make JavaScript change background image every 5 seconds

我試圖每5秒更改一次我的背景圖片。 我應該怎么做?

window.onload = function () {

  function Timer() {
    window.setInterval("changeImage()", 5000);
  }

  function changeImage() {   
    var BackgroundImg["./Img/Bg1.jpg",
                      "./Img/Bg2.jpg",
                      "./Img/Bg3.jpg",
                      "./Img/Bg4.jpg"];
    var i = Math.floor((Math.random() * 3));
    var bgImg = document.body.style.backgroundImage();
    bgImg.url = BackgroundImg[i];
  }
}

您錯誤地訪問樣式

window.onload = function () {

    function changeImage() {   
        var BackgroundImg=["./Img/Bg1.jpg",
            "./Img/Bg2.jpg",
            "./Img/Bg3.jpg",
            "./Img/Bg4.jpg"
        ];
        var i = Math.floor((Math.random() * 4));
        document.body.style.backgroundImage = 'url("' + BackgroundImg[i] + '")';
    }
    window.setInterval(changeImage, 5000);
}

另外,如果可能(通常是),請勿將字符串傳遞給window.setInterval像上面一樣使用

這是您問題的解決方案。 希望能幫助到你!

<!DOCTYPE html>

<html>
<head>
  <title>change picture</title>
  <script type = "text/javascript">
      function displayNextImage() {
          x = (x === images.length - 1) ? 0 : x + 1;
          document.getElementById("img").src = images[x];
      }
      function changeImage() {
          setInterval(displayNextImage, 5000);
      }

      var images = [], x = -1;
      images[0] = "http://www.planwallpaper.com/static/images/desktop-year-of-the-tiger-images-wallpaper.jpg";
      images[1] = "http://www.planwallpaper.com/static/images/background-gmail-google-images_FG2XwaO.jpg";
      images[2] = "http://www.planwallpaper.com/static/images/beautiful-sunset-images-196063.jpg";
  </script>
  </head>
  <body onload = "changeImage()">
   <img id="img" src="http://www.planwallpaper.com/static/images/beautiful-sunset-images-196063.jpg"/>
  </body>
  </html>

你可以做些改變

1.不確定從哪里調用Timer函數(最好是使用camelCase)

function Timer() {
    window.setInterval("changeImage()", 5000);
  }

相反,您可以直接使用

setInterval(changeImage, 5000);

changeImage是一個回調

2.無法弄清楚這是什么意思

var bgImg = document.body.style.backgroundImage();

不確定是否可以將一個功能附加到樣式屬性。

無論如何,下面的代碼片段可能很有用

window.onload = function () {
     // Array of Images
      var backgroundImg=["https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRyB57zuc4bms-hDtWMa-4BZvscIlJDm4r7a9WLaO4SAxUvKM-DDA",
                        "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQBinSpWOvAtkxjmkf709O3rjH2ObRbWAEn9s0JcWaeL6LMtCbOrQ",
                        "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKY4J2qIFqkuDnABMzeypywbMSZL1cleS8vpySz0KD02wOYORU1g",
                        "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRQkdQT0zN0xDVP-VuvwojSbS5dOstX14eZvJCOWNPxKJ5dWTIc"
                        ]

        setInterval(changeImage, 5000);
       function changeImage() {   
        var i = Math.floor((Math.random() * 3));

        document.body.style.backgroundImage = "url('"+backgroundImg[i]+"')";

      }
    }

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM