0

ページがロードされたときにこの関数を実行して、画像が一定期間にわたって変化するようにしようとしています。このイメージをonclickで実行できますが、ロード時に実行する方法が見つかりません。できる限りのことを試してみました

    var imgArray = []
            imgArray[0] = "url('../danallenfilms/images/screenshots/husky/shot1.png')";
            imgArray[1] = "url('../danallenfilms/images/screenshots/husky/shot2.png')";
            imgArray[2] = "url('../danallenfilms/images/screenshots/husky/shot3.png')";
            imgArray[3] = "url('../danallenfilms/images/screenshots/husky/shot4.png')";
            imgArray[4] = "url('../danallenfilms/images/screenshots/husky/shot5.png')";

    var numOfImg = imgArray.length
     function randomImg(){


         var randomNum = Math.floor(Math.random()*(numOfImg));


            document.getElementById('imgDisplay').style.backgroundImage = imgArray[randomNum];

    };
    setInterval(randomImg(), 1000);
4

5 に答える 5

1

試す:

   var imgArray = []
            imgArray[0] = "url('../danallenfilms/images/screenshots/husky/shot1.png')";
            imgArray[1] = "url('../danallenfilms/images/screenshots/husky/shot2.png')";
            imgArray[2] = "url('../danallenfilms/images/screenshots/husky/shot3.png')";
            imgArray[3] = "url('../danallenfilms/images/screenshots/husky/shot4.png')";
            imgArray[4] = "url('../danallenfilms/images/screenshots/husky/shot5.png')";

    var numOfImg = imgArray.length,
        elem = document.getElementById('imgDisplay');

    setInterval(function () {
         var randomNum = Math.floor(Math.random()*(numOfImg));
         elem.style.backgroundImage = imgArray[randomNum];
    }, 1000);

正しい使い方はsetInterval こちら

がロードされる前にスクリプトが実行された場合にも、問題が発生する可能性がありますimgDisplay。タグを閉じる前に上記のスクリプトを配置することで、この問題を解決できますbody

于 2013-03-04T14:55:05.837 に答える
0
var imgArray = [
 "url('../danallenfilms/images/screenshots/husky/shot1.png')",
 "url('../danallenfilms/images/screenshots/husky/shot2.png')",
 "url('../danallenfilms/images/screenshots/husky/shot3.png')",
 "url('../danallenfilms/images/screenshots/husky/shot4.png')",
 "url('../danallenfilms/images/screenshots/husky/shot5.png')"
            ];

var numOfImg = imgArray.length;
 function randomImg(){
     var randomNum = Math.floor(Math.random()*numOfImg);
        document.getElementById('imgDisplay').style.backgroundImage = imgArray[randomNum];
}
setInterval('randomImg()', 1000);

このようにしてみてください

于 2013-03-04T14:58:31.717 に答える
0

ページの読み込み時に実行するには、ページの読み込み時に呼び出される関数が必要です。名前を「onStart」にしましょう。setInterval 行である 1 行だけが含まれます。また、html コードでいくつかの js を記述する必要があります。つまり、ボディタグを見つけて、属性「onload」を追加します。このような:

<body onload="onStart()">
于 2013-03-04T14:58:43.770 に答える
0

どうですか:

<body onload="setInterval(randomImg, 1000);">
...
</body>
于 2013-03-04T14:56:28.883 に答える