|
7 / 8 / 3
Регистрация: 02.04.2018
Сообщений: 531
|
||||||||||||||||
Некорректно работает функция sleep18.02.2025, 12:24. Показов 2408. Ответов 28
Метки нет (Все метки)
Добрый день. Не могу понять в чём дело. Узнал что в JS нет такой функции подобие delay
я так понял можно создать подобную функцию sleep, с задержкой по времени, но почему-то при этом нарушается логика работы программы.
по логике, для div блока применяется новый параметр смещающий стиль блока налево, далее пока идёт движение блока transition: 500ms, мы должны в теории замереть на это же время, и после чего дать команду на смещение (отступ сверху). Но происходит странное, первый стиль не применяется, пока JS не выйдет из паузы, а когда он выходит, применяются сразу два стиля margin-top и margin-left из-за чего блок двигается не влево и вниз, а по диагонали. Как замедлить программу JS чтобы не выполнять следующее смещение пока не закончится первое? Можно конечно отслеживать document.getElementById('run').getProper tyValue('margin-top'); но зависать в while думаю плохая идея.
0
|
||||||||||||||||
| 18.02.2025, 12:24 | |
|
Ответы с готовыми решениями:
28
Функция работает некорректно
работа с функцией, высчитывание разных суммы |
|
1242 / 1142 / 178
Регистрация: 21.01.2024
Сообщений: 5,224
|
||||||
| 18.02.2025, 12:36 | ||||||
|
Вы не понимаете как работает цикл событий в js.
Когда происходит событие, начинает работать его обработчики. Всякие перерасчеты стилей и рендер (отображение) экрана производятся после окончания работы обработчиков. Т.е пока не завершится ваша функция (с циклом внутри) никаких изменений на экране не будет.
2
|
||||||
|
3813 / 1651 / 428
Регистрация: 14.03.2022
Сообщений: 4,122
|
|
| 18.02.2025, 15:03 | |
|
0
|
|
|
7 / 8 / 3
Регистрация: 02.04.2018
Сообщений: 531
|
||
| 18.02.2025, 15:16 [ТС] | ||
|
Хорошо, как выйти из положения? если запустить функцию вне обработчика есть великий шанс, что стили не успеют загрузится и логично код будет обращаться к тому чего нет.
0
|
||
|
3813 / 1651 / 428
Регистрация: 14.03.2022
Сообщений: 4,122
|
|||||
| 18.02.2025, 15:43 | |||||
|
JS однопоточный ЯП. И твоя программа не "спит", она именно выполняется в цикле
0
|
|||||
|
1242 / 1142 / 178
Регистрация: 21.01.2024
Сообщений: 5,224
|
|
| 18.02.2025, 15:56 | |
|
0
|
|
|
7 / 8 / 3
Регистрация: 02.04.2018
Сообщений: 531
|
||||||
| 18.02.2025, 16:00 [ТС] | ||||||
0
|
||||||
|
1242 / 1142 / 178
Регистрация: 21.01.2024
Сообщений: 5,224
|
||
| 18.02.2025, 16:03 | ||
|
Словами их выразите.
0
|
||
|
7 / 8 / 3
Регистрация: 02.04.2018
Сообщений: 531
|
||||||
| 18.02.2025, 16:08 [ТС] | ||||||
|
Боже, какой геморрой анимацию отрисовать)) Так и хочется, ты должен бороться со злом а не примкнуть к нему.
0
|
||||||
|
14114 / 9331 / 1350
Регистрация: 21.01.2016
Сообщений: 35,067
|
|
| 18.02.2025, 16:26 | |
|
SergeyKagen, а здесь точно руками надо таймеры выставлять? Анимация силами CSS никак не подходит?
0
|
|
|
3813 / 1651 / 428
Регистрация: 14.03.2022
Сообщений: 4,122
|
|
| 18.02.2025, 16:36 | |
|
0
|
|
|
1242 / 1142 / 178
Регистрация: 21.01.2024
Сообщений: 5,224
|
||||||||||||
| 18.02.2025, 16:58 | ||||||||||||
|
Вариант 1
0
|
||||||||||||
|
7 / 8 / 3
Регистрация: 02.04.2018
Сообщений: 531
|
||||||
| 18.02.2025, 17:49 [ТС] | ||||||
|
Да, я не знаю JS на профессиональном уровне. Но и ветка по-моему об этом говорит.
я не пойму, как передать в функцию параметры.
сама функция вне setTimeout работает, внутри не видит. Я так понял, нужно эти параметры сначала передать в setTimeout? но как...?
0
|
||||||
|
1242 / 1142 / 178
Регистрация: 21.01.2024
Сообщений: 5,224
|
||||||||||||||||
| 18.02.2025, 18:15 | ||||||||||||||||
Вы вызываете setTimeout. Она запускает таймер на время delay и говорит, что после срабатывания таймера надо вызвать функцию
По завершению setTimeout выполнится
Поэтому надо такие вещи писать используя async/await.
0
|
||||||||||||||||
|
7 / 8 / 3
Регистрация: 02.04.2018
Сообщений: 531
|
|
| 18.02.2025, 18:23 [ТС] | |
|
я вывел setTimeout из тела for и заработало. Костыль, но там всего-то 11 команд
0
|
|
|
3813 / 1651 / 428
Регистрация: 14.03.2022
Сообщений: 4,122
|
||
| 18.02.2025, 22:26 | ||
|
Пока ты не поймешь как работает событийный цикл в JS, так и будешь блуждать во тьме. https://learn.javascript.ru/event-loop
0
|
||
|
14114 / 9331 / 1350
Регистрация: 21.01.2016
Сообщений: 35,067
|
|
| 19.02.2025, 02:45 | |
|
Очень интересный подход) Выше озвучили, что анимации на CSS делаются, как правило без таймеров. И пример даже привел ещё один. Но ТСу как будто бы пофигу)
0
|
|
|
7 / 8 / 3
Регистрация: 02.04.2018
Сообщений: 531
|
||||||||||||
| 19.02.2025, 16:17 [ТС] | ||||||||||||
|
Однако с точки зрения образовательного контента я впитал информацию, и если честно она меня больше всех устраивает с анимацией CSS. Но у меня как всегда много вопрос, я не особо хочу засорять форум этими вопросами.
второе, если мне хочется изменить 2-й кадр, тот что 25%, как мне поменять процент времени с которого он начинается, например не 25% а 20%? Ну и третье, что сильнее нагружает браузер JS или CSS? просто у меня есть анимация из шестерёнок и она тормозит на старых компьютерах. Тут или видео виновато на backgrounde или анимация. Буду ещё искать как определить мощность компьютера, и скорость интернета. Надеюсь средствами JS на стороне клиента это как-то можно определить. У JS много возможностей, я вкурсе. Просто всё и сразу я не смогу переварить, так устроен мой мозг.
0
|
||||||||||||
|
1242 / 1142 / 178
Регистрация: 21.01.2024
Сообщений: 5,224
|
|||||
| 19.02.2025, 16:44 | |||||
|
Если все определяется динамически, то только так. А если просто несколько вариантов, то проще несколько правил заготовить. Вряд ли это можно.
0
|
|||||
|
7 / 8 / 3
Регистрация: 02.04.2018
Сообщений: 531
|
||||||||||||
| 19.02.2025, 18:26 [ТС] | ||||||||||||
|
у меня в CSS стилях прописан ID. Как его поменять через CSSOM? например с t-08-a-8 на t-08-a-5 ? или вообще как вариант, это удалить эти строчки.
вроде нашёл что есть, getComputedStyle() - но она вроде как только читает.
0
|
||||||||||||
| 19.02.2025, 18:26 | |
|
Помогаю со студенческими работами здесь
20
Работа с функциями setInterval() и clearInterval() Некорректная работа скрипта Некорректная работа скрипта Некорректная работа Javascript при прокрутке превью в галерее Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|