Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 20.12.2018
Сообщений: 66

Задержка между функиями

05.08.2019, 19:08. Показов 1604. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 3 функции
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function b1(){
    document.getElementById("baners").innerHTML = "...";
    document.getElementById('baners').style.background = 'url(img/baners/1.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
function b2(){
    document.getElementById("baners").innerHTML = "..."
    document.getElementById('baners').style.background = 'url(img/baners/2.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
function b3(){
    document.getElementById("baners").innerHTML = "...";
    document.getElementById('baners').style.background = 'url(img/baners/3.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
b1();
как можно сделать так что бы функции выполнялись с задержкой в 3 секунды по очереди
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2019, 19:08
Ответы с готовыми решениями:

задачи с функиями
С помощью координат заданы 4 точки в трехмерном пространстве. Определить пару точек наиболее близких друг к другу.

Как написать калькулятор с функиями +,-/,*,%.
Как написать калькулятор с функиями +,-/,*,%. ЗАРАНИЕ БЛОГАДОРЮ.

Задержка между действиями
А если мне нужно при нажатии сделать паузу между действиями, а Thread.Sleep(1000) тормозит полностью все действия? button1.Enabled =...

5
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
05.08.2019, 20:58
krash_laiv,

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
((count,time) => {
    let i = 0, baners = document.querySelector('#baners'), timeout;
 
    // эти строки вам точно нужны?
    baners.innerHTML = "...";
    baners.style.backgroundSize = '100%';
    
    (function Baners(){
        timeout = setTimeout(Baners, time*1000);
        baners.style.background = `url(img/baners/${++i}.png)`;
        if(i == count) clearTimeout(timeout);
    })();
})(3,2);
 
// 3 - количество банеров
// 2 - интервал (сек)
Добавлено через 55 секунд
Если нужно что бы банеры менялись без остановки
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
((count,time) => {
    let i = 0, baners = document.querySelector('#baners'), timeout;
 
    // эти строки вам точно нужны?
    baners.innerHTML = "...";
    baners.style.backgroundSize = '100%';
    
    (function Baners(){
        timeout = setTimeout(Baners, time*1000);
        baners.style.background = `url(img/baners/${++i}.png)`;
        if(i == count) i = 0;
    })();
})(3,2);
 
// 3 - количество банеров
// 2 - интервал (сек)
backgroundSize не лучше в css прописать?

Добавлено через 14 минут
krash_laiv,

Вы так хотели -> http://some-test.onlinewebshop.net/banners/
?
Если adblock установлен то отключите на время, иначе ничего не увидите перейдя по ссылке- он блокирует банеры.
1
0 / 0 / 0
Регистрация: 20.12.2018
Сообщений: 66
05.08.2019, 21:06  [ТС]
Цитата Сообщение от Mr_Sergo Посмотреть сообщение
// эти строки вам точно нужны?
* * baners.innerHTML = "...";
* * baners.style.backgroundSize = '100%'
да нужны так как меняется не только картинка но ещё и элементы в ней и надо вызовом функции а не просто сменой параметра
0
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
05.08.2019, 21:13
Цитата Сообщение от krash_laiv Посмотреть сообщение
да нужны
тогда так
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
((count,time) => {
    let i = 0, baners = document.querySelector('#baners'), timeout;
    (function Baners(){
        timeout = setTimeout(Baners, time*1000);
        baners.innerHTML = "...";
        baners.style.backgroundSize = '100%';
        baners.style.background = `url(img/baners/${++i}.png)`;
        if(i == count) i = 0;
    })();
})(3,2);
 
// 3 - количество банеров
// 2 - интервал (сек)
Добавлено через 4 минуты
Ммм... или вам нужно что бы было именно 3 отдельные функции которые вызываются с интервалом в 3 секунды?
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
05.08.2019, 21:27
В современном синтаксисе JavaScript:

В задаче непонятно, нужно ли при каждом вызове менять innerHTML и как именно.
Если innerHTML никакой закономерности не поддается, то так:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <style>
        #baners {
            height: 100px;
            width: 100px;
            border: 1px solid black;
            background-size: 100%;
        }
    </style>
</head>
<body>
    <div id="baners"></div>
    <script>
        Promise.delay = ms => new Promise(resolve => { setTimeout(resolve, ms); });
 
        function b1(innerHTML, url) {
            document.getElementById("baners").innerHTML = innerHTML;
            document.getElementById('baners').style.background = `url(${url})`;
        }
 
        (async function main() {
            let urls = [["Первый", "1.jpg"], ["Второй", "2.jpg"], ["Третий", "3.jpg"]];
            for (let url of urls) {
                b1(url[0], url[1]);
                await Promise.delay(3000); // 3 секунды
            };
        })();
    </script>
</body>
</html>
2
Эксперт JS
2037 / 1096 / 409
Регистрация: 29.04.2016
Сообщений: 2,625
05.08.2019, 22:49
Лучший ответ Сообщение было отмечено krash_laiv как решение

Решение

krash_laiv,
Цитата Сообщение от Mr_Sergo Посмотреть сообщение
или вам нужно что бы было именно 3 отдельные функции которые вызываются с интервалом в 3 секунды?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function b1(){
    document.getElementById("baners").innerHTML = "...";
    document.getElementById('baners').style.background = 'url(1.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
function b2(){
    document.getElementById("baners").innerHTML = "..."
    document.getElementById('baners').style.background = 'url(2.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
function b3(){
    document.getElementById("baners").innerHTML = "...";
    document.getElementById('baners').style.background = 'url(3.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
 
((arr,time) => {
    let i = -1, timeout;
    (function Baners(){
        timeout = setTimeout(Baners, time*1000);
        arr[++i].call();
        if(i == arr.length-1) clearTimeout(timeout);
    })();
})(
    [b1,b2,b3], // перечень функций
    3           // интервал (сек)
);
или циклично по кругу
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function b1(){
    document.getElementById("baners").innerHTML = "...";
    document.getElementById('baners').style.background = 'url(1.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
function b2(){
    document.getElementById("baners").innerHTML = "..."
    document.getElementById('baners').style.background = 'url(2.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
function b3(){
    document.getElementById("baners").innerHTML = "...";
    document.getElementById('baners').style.background = 'url(3.png)';
    document.getElementById('baners').style.backgroundSize = '100%';
}
 
((arr,time) => {
    let i = -1, timeout;
    (function Baners(){
        timeout = setTimeout(Baners, time*1000);
        arr[++i].call();
        if(i == arr.length-1) i = -1;
    })();
})(
    [b1,b2,b3], // перечень функций
    3           // интервал (сек)
);
но backgroundSize все же лучше в css перенести
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.08.2019, 22:49
Помогаю со студенческими работами здесь

Задержка между действиями
Есть такой вот метод: public void move(int x) { while (this.x != x) { /* Ваш код */ this.x += 1; } } Как...

Задержка между командами
Добрый день! я хочу спросить, почему при выполнении кода int y=0; while(1) { while(y++&lt;1000000);y=0; printf(&quot;z &quot;); } ...

Задержка между клипами
Здравствуйте. Порылся по форуму, видел несколько вариантов ответо на нужный мне вопрос, но не смог его решить. Какая задача. Есть...

Задержка между сменой pictureBox
Доброго времени суток, господа форумчане. Делаю проект часы с кукушкой для курсовой. Необходимо добавить задержку между вылетами...

Задержка между запуском программ
подскажите пожалуйста!!!!!!!!! вопрос такой : есть кнопка по ней вызываются два экзешника как сделать так чтобы экзешники запускались с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru