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 张图片,我想创建无限循环

而(真){}

但是我的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 回答