Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Зациклить функцию в нативном js (https://javascript.ru/forum/misc/50167-zaciklit-funkciyu-v-nativnom-js.html)

lud0k 15.09.2014 11:37

Зациклить функцию в нативном js
 
Мне нужно менять фон изображения дивов, у меня это получилось, как теперь это зациклить? Пыталась в конце функции вызывать ее саму, все зависало( помогите разобраться

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <script type="text/javascript">
        window.addEventListener("load",function(){
            setTimeout(function(){window.scrollTo(0,1)},0);
            document.body.className += 'load';
            bgChange();
        });
        function bgChange() {
            setTimeout(function (){document.getElementById("first").style.backgroundImage = "url(img/first-02.jpg)";}, 3000);
            setTimeout(function (){document.getElementById("first").style.backgroundImage = "url(img/first-03.jpg)";}, 6000);

            setTimeout(function (){document.getElementById("second").style.backgroundImage = "url(img/second-02.jpg)";}, 5000);
            setTimeout(function (){document.getElementById("second").style.backgroundImage = "url(img/second-03.jpg)";}, 8000);

            setTimeout(function (){document.getElementById("third").style.backgroundImage = "url(img/third-02.jpg)";}, 4000);
            setTimeout(function (){document.getElementById("third").style.backgroundImage = "url(img/third-03.jpg)";}, 7000);

            setTimeout(function (){document.getElementById("fourth").style.backgroundImage = "url(img/fourth-02.jpg)";}, 6000);
            setTimeout(function (){document.getElementById("fourth").style.backgroundImage = "url(img/fourth-03.jpg)";}, 8000);
        }
    </script>
</head>
<body>
    <div id="mini_video">
        <div class="item">
            <a href="#" id="first"><img class="mask" alt="" src="img/mask-mini.png" /></a>
        </div>
        <div class="item">
            <a href="#" id="second"><img class="mask" alt="" src="img/mask-mini.png" /></a>
        </div>
        <div class="item">
            <a href="#" id="third"><img class="mask" alt="" src="img/mask-mini.png" /></a>
        </div>
        <div class="item">
            <a href="#" id="fourth"><img class="mask" alt="" src="img/mask-mini.png" /></a>
        </div>
    </div>
</body>
</html>

tsigel 15.09.2014 11:42

Ну вы вызов своей функции тоже в таймаут поставьте. А то он бедный по кругу носится и только ваши таймауты в очередь собирает.

lud0k 15.09.2014 11:45

Добавила строчку
setTimeout(bgChange(), 12000);


Все ровно виснет

tsigel 15.09.2014 11:47

Цитата:

Сообщение от lud0k (Сообщение 330635)
Добавила строчку
setTimeout(bgChange(), 12000);


Все ровно виснет

Если вы пишете bgChange() - то вы сразу вызываете функцию и в таймаут передается то что она возвращает, а надо передавать туда саму функцию.
setTimeout(bgChange, 12000);

lud0k 15.09.2014 11:49

Благодарю) Все заработало


Часовой пояс GMT +3, время: 05:22.