Я использую анимацию jquery для увеличения ширины и высоты div. Анимация запускается при нажатии на поле, а затем возвращается к исходному размеру при нажатии на появившуюся иконку с задним шрифтом.
HTML:
<body>
<div class="flex-container">
<div class="flex-items">
<i class="fa fa-reply fa-2x"></i>1
</div>
<div class="flex-items"><i class="fa fa-reply fa-2x"></i>2</div>
<div class="flex-items"><i class="fa fa-reply fa-2x"></i>3</div>
<div class="flex-items"><i class="fa fa-reply fa-2x"></i>4</div>
<div class="flex-items"><i class="fa fa-reply fa-2x"></i>5</div>
<div class="flex-items"><i class="fa fa-reply fa-2x"></i>6</div>
<div class="flex-items"><i class="fa fa-reply fa-2x"></i>7</div>
<div class="flex-items"><i class="fa fa-reply fa-2x"></i>8</div>
</div>
</body>
CSS:
*{
margin: 0;
padding: 0;
}
body{
background-color: lightblue;
}
.flex-container{
display: flex;
width: 90vw;
margin: 0 auto;
flex-flow: row wrap;
justify-content: center;
margin-top: 20px;
}
.flex-items{
width: 350px;
height: 350px;
border: 1px solid black;
order: 1;
}
i{
visibility: hidden;
float: right;
}
.header{
height: 50px;
background-color: #333;
}
.headerText{
margin-left: 40px;
color: white;
}
JQuery:
$(document).ready(function(){
$(".flex-items").click(function(){
console.log(this.css);
$(this)
.animate({
width: '100vw',
height: '100vh'},{
duration: 300,
ease: "slow"})
.css("order", "0");
i = $(this).children();
$(i).css("visibility" ,"initial");
});
$("i").click(function(evt){
evt.stopPropagation();
$(".flex-items").animate({
width: '300px',
height: '300px'},{
duration: 300,
ease: "linear"})
.css("order", "1");
$(this).css("visibility" ,"hidden");
});
});
Существует эффект «глючного» типа, который возникает, когда вы закрываете div, и он возвращается в исходное состояние. Есть ли способ сделать этот переход более плавным?