我怎样才能创建真正的循环?

时间:2013-01-21 11:02:22

标签: javascript css

        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掉了下来。如何为我的目的创建真正的循环?

2 个答案:

答案 0 :(得分:4)

您不需要循环。代码的“最直接”翻译是在setTimeout(slideback, 2200)方法结束时调用slideback。这几乎就是说“并且在大约2秒内再次做同样的事情。”

更好的方法是使用setInterval

setInterval(slideback, 2200);

请记住,JS和HTML交互几乎都是基于事件的。这意味着您几乎不需要在代码中直接使用无限循环(对于大多数现代开发环境而言都是如此)。

答案 1 :(得分:4)

while(true)会将您的浏览器发送到一个可怕的无限循环并将​​其锁定。不要那样做。

查看Javascript setInterval方法(例如setInterval(slideback, 2200)),每2200毫秒重复一次该方法。