Мне нужно реализовать появление блоков через определенный промежуток (не одинаковый), при этом чтобы одновременно с появлением третьего блока пропадал первый, с появлением четвертого блока пропадал второй и т.д. Таким образом на экране одновременно должно быть только два блока. Я написал такой скрипт:
$(function(){
$('#1').delay(1000).show(400);
$('#2').delay(2000).show(400);
$('#1').delay(3000).hide(400);
$('#3').delay(3000).show(400);
$('#2').delay(4000).hide(400);
$('#4').delay(4000).show(400);
$('#3').delay(5000).hide(400);
$('#5').delay(5000).show(400);
});
Но почему-то таймер срабатывает неправильно. По логике первый блок должен скрыться перед показом третьего, но он скрывается только после показа четвертого. В общем тут лучше один раз увидеть - пример на JSFiddle
Подскажите, в чём может быть проблема?
Кажется, вот такой код работает как нужно:
$(function() {
setTimeout(function() {
$('#1').show(400);
}, 1000);
setTimeout(function() {
$('#2').show(400);
}, 2000);
setTimeout(function() {
$('#3').show(400);
}, 3000);
setTimeout(function() {
$('#1').hide(400);
$('#4').show(400);
}, 4000);
setTimeout(function() {
$('#2').hide(400);
$('#5').show(400);
}, 5000);
});
div {
display: none;
width: 100px;
padding: 10px;
margin: 10px;
border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div id="1">Один</div>
<div id="2">Два</div>
<div id="3">Три</div>
<div id="4">Четыре</div>
<div id="5">Пять</div>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости