Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / HTML, JavaScript, VBScript, CSS Новый топик    Ответить
 Помогите с задержкой(setinterval) условий...  [new]
KsOD
Member

Откуда:
Сообщений: 3
В кратце, опишу проблему - возникла проблема с пониманием таких команд, как setinterval и settimeout.
Цель была сделать на условиях сделать задержку в 3 секунды, когда эти же условия ходят по циклу(for)... Фактически пример это и есть данный код, именно сейчас все работает, как предполагается, только данный способ меня не устраивает, ибо каждый раз цикл умножая на себя, увеличивает скорость задержки, хотелось бы уйти от данного ускорения.
Очень долго пытался уяснить куда поставить и что сделать, в итоге результат 0, решил обратится к более опытным людям, которые встречались с данной командой.
P.S. Заранее спасибо, прошу разъяснить данную команду и её особенность работы и прошу прощения, что нету комментариев, на данный момент добавить их не предоставляется возможным мне...

JS
+
jQuery(document).ready(function ($) {

    var image = new Array(4);

    image[0] = { 'small': "small-0", 'big': "big-0" };
    image[1] = { 'small': "small-1", 'big': "big-1" };
    image[2] = { 'small': "small-2", 'big': "big-2" };
    image[3] = { 'small': "small-3", 'big': "big-3" };
    image[4] = { 'small': "small-4", 'big': "big-4" };

    var active_image = 0;
    var last_image = 0;

    for (var i = 1; i < 100; i++) {
        setTimeout(function() {

            if (last_image == 0) {

                $("#slide-0").html(image[0].small);
                $("#slide-1").html(image[1].small);
                $("#slide-2").html(image[2].small);
                $("#slide-3").html(image[3].small);
                $("#slide-4").html(image[4].big);

                last_image = 4;
            } else {

                if (last_image == 4) {
                    $("#slide-1").html(image[last_image].small);
                    $("#slide-4").html(image[1].big);
                    last_image = 1;
                }

                if (last_image < 4) {
                    active_image = last_image + 1
                    $("#slide-" + active_image).html(image[last_image].small);
                    $("#slide-4").html(image[active_image].big);

                    if (active_image < 4) {
                        last_image = active_image;
                    } else {
                        $("#slide-0").html(image[0].small);
                        $("#slide-1").html(image[1].small);
                        $("#slide-2").html(image[2].small);
                        $("#slide-3").html(image[3].small);
                        $("#slide-4").html(image[4].big);

                        last_image = 4;
                    }
                }
            }
            console.log(i);
        }, 3000 * i);
    }
});

HTML
+
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
        <script src="script.js"></script>
    </head>    
    <body>

     <div id="slide-0">0</div> 
     <div id="slide-1">1</div> 
     <div id="slide-2">2</div> 
     <div id="slide-3">3</div> 
     <div id="slide-4">4</div> 
    </body>
</html>
9 фев 19, 05:54    [21805046]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с задержкой(setinterval) условий...  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
KsOD, не нужно setinterval и settimeout совать в циклы... Эти методы сами могут делать повторяющиеся действия.


<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	primer(10);
	function primer(N) {
		var o=document.getElementById('test');
		if (N<1) {
			o.innerHTML='Ok.';
			return;
		};
		o.innerHTML=N;
		setTimeout(function(){
			primer(--N);
		},300);
	};
});
</script>
</head>
<body>
<p id='test'></p>
</body>
</html>
11 фев 19, 08:00    [21806041]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с задержкой(setinterval) условий...  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13153
Забыл раскомментировать

<script src='https://code.jquery.com/jquery-latest.js'></script>
11 фев 19, 08:02    [21806043]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с задержкой(setinterval) условий...  [new]
Програмёр
Member

Откуда: Москва
Сообщений: 2995
спамер похоже. Буквально на днях получил парочку исчерпывающих ответов и снова спрашивает!
https://www.sql.ru/forum/1308874/pomogite-s-zaderzhkoy-setinterval-usloviy
11 фев 19, 21:26    [21806867]     Ответить | Цитировать Сообщить модератору
Все форумы / HTML, JavaScript, VBScript, CSS Ответить