#javascript #html #css
#javascript #HTML #css
Вопрос:
я ищу, чтобы сделать анимированное видео с ошибками. Я использую 2 видео, чтобы сделать сбой. Один из них полностью сбит с толку, и я просто хочу, чтобы она появлялась или исчезала случайным образом с помощью функции случайной синхронизации с диапазоном времени.
Как можно завершить или перекодировать этот крошечный фрагмент Javascript?
Мне просто нужно сделать показ / скрытие со случайным временем скрытия… показывал максимум 5 секунд и скрывал от 20 до 120 секунд
Пожалуйста, взгляните на код :
setTimeout(function(){
document.getElementById('Video1').style.display = 'none';
}, 3000); // 10000ms = 10 seconds
<html>
<head></head>
<body>
<div class="Video1" id="Video1" name="Video1">Video1</div>
<div class="Video2" id="Video2" name="Video2">Video2</div>
</body>
</html>
Ответ №1:
Рекурсия вызовет setTimeout и переключит внешний вид вашего div.
Видео1 будет отображаться с интервалом в 5 секунд. После закрытия он останется таким в течение интервала 20-120 [s], и это будет повторяться бесконечно.
function callTimeout(isOpen, time) {
setTimeout(function() {
if (isOpen) {
document.getElementById('Video1').style.display = 'none';
time = (Math.floor(Math.random() * 120) 20) * 1000;
} else {
document.getElementById('Video1').style.display = '';
time = Math.floor(Math.random() * 6) * 1000;
}
isOpen = !isOpen;
callTimeout(isOpen, time);
}, time);
}
callTimeout(true, Math.floor(Math.random() * 6) * 1000)
<html>
<head></head>
<body>
<div class="Video1" id="Video1" name="Video1">Video1</div>
<div class="Video2" id="Video2" name="Video2">Video2</div>
</body>
</html>
Комментарии:
1. Спасибо, Евгений, это хорошее начало, видео1 будет исчезать случайным образом, но не будет появляться случайным образом. Можете ли вы прокомментировать параметры времени функции?
2. @Cudex он снова появится, подождите 20-120 секунд, как вы указали. аргументы — это только те интервалы, которые вы хотели.
Ответ №2:
Очень хорошо, большое спасибо вам, Евгений.
У меня есть аргументы modify, чтобы сделать его более динамичным. Это было слишком медленно, чтобы иметь эффект сбоя / отсутствия сбоя.
function callTimeout(isOpen, time) {
setTimeout(function() {
if (isOpen) {
document.getElementById('Video1').style.display = 'none';
time = (Math.floor(Math.random() * 4) 1) * 1000;
} else {
document.getElementById('Video1').style.display = '';
time = Math.floor(Math.random() * 2) * 1000;
}
isOpen = !isOpen;
callTimeout(isOpen, time);
}, time);
}
callTimeout(true, Math.floor(Math.random() * 3) * 1000)
<div class="Video1" id="Video1" name="Video1">Video1</div>
<div class="Video2" id="Video2" name="Video2">Video2</div>