0
        var resimler = Array('uludağ.jpg', 'yesilturbe.jpg', 'taksi.jpg');
        var sayi = resimler.length - 1;
        var now = 0;
        function slideback()
        {
            $('body').css('background-image','url(' + resimler[now] + ')');
            now = now + 1;
            if(now==sayi)
            {
                now = 0;
            }
        }

        while(true){
            $(function() {
                    setTimeout(slideback, 2200);
            });
        }

上記の私のJavascriptコード、以下のCSSコード..

body{
                background-image:url('taksi.jpg');
                background-size:100%; 
                background-attachment:fixed;
                -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(
                src='taksi.jpg',
                sizingMethod='scale')";
                filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
                src='taksi.jpg',
                sizingMethod='scale');
            }

2200ミリ秒ごとに背景画像を変更したい。ご覧のとおり、3つの画像があり、無限ループを作成したい

while(真){}

しかし、私のFirefoxは落ちます。私の目的のために真のループを作成するにはどうすればよいですか?

4

2 に答える 2

4

ループは必要ありません。コードの「最も直接的な」変換は、メソッドsetTimeout(slideback, 2200)の最後で呼び出すことです。slidebackそれは、「約 2 秒で同じことをもう一度行う」ということです。

さらに良いのは、次を使用することsetIntervalです:

setInterval(slideback, 2200);

JS と HTML の相互作用はほとんどイベント ベースであることを思い出してください。これは、コード内で無限ループを直接使用する必要がほとんどないことを意味します (これは、ほとんどの最新の開発環境に当てはまります)。

于 2013-01-21T11:03:54.827 に答える
4

while(true)ブラウザを恐ろしい無限ループに陥らせ、ロックします。そうしないでください。

JavascriptsetIntervalメソッド (例: setInterval(slideback, 2200)) を見て、2200 ミリ秒ごとにメソッドを繰り返します。

于 2013-01-21T11:04:44.477 に答える