Появление и исчезновение элементов по очереди
Сделал себе блок в котором элементы меню появляются по очереди./
Код взял с сайта https://snipp.ru/jquery/show-turn (раздел "FadeIn – плавное появление"). Сам код:
$('.main-menu').click(function(){
$('.shows div:eq(0)').fadeIn(300, function(){
$(this).next().fadeIn(300, arguments.callee);
});
});
В итоге появление элементов работает отлично, однако не разобрался как сделать изчезновение этих элементов в обратном порядке при клике на тот же блок <div class="main-menu"></div>. Попытался вместо fadeIn написать fadeToggle, но пункты меню также начинают исчезать начиная с первого элемента, а не с последнего, что визуально совсем не то. |
$('.main-menu').click(function(){
$('.shows div:last').fadeOut(300, function(){
$(this).prev().fadeOut(300, arguments.callee);
});
});
|
Цитата:
$('.main-menu').click(function(){
$('.shows div:last').fadeOut(300, function me (){
$(this).prev().fadeOut(300, me);
});
});
|
Спасибо за ответы, но полученный код в итоге работает не совсем корректно.
При запуске события первый элемент появляется и сразу исчезает, а оставшиеся появляются в обычном порядке. При закрытии блока в хаотичном порядке исчезают все элементы кроме последнего. |
LLIypuk,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.shows div {
display: none;
width: 100px;
height: 100px;
float: left;
background-color: #FFCC66;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function() {
var show = 1;
$('.main-menu').click(function(){ console.log(show)
$('.shows div').stop(true, true);
if(show ^= 1){
$('.shows div:last').fadeOut(300, function me (){
$(this).prev().fadeOut(300, me);
});
}
else{
$('.shows div:eq(0)').fadeIn(300, function to(){
$(this).next().fadeIn(300, to);
});
}
});
});
</script>
</head>
<body>
<input name="" type="button" value="click" class="main-menu">
<div class="shows">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 12:45. |