Я хочу, чтобы анимация fade
произошла. плюс имеет высоту .hideme
, которая также растет от 0px to 30px
во время ().delay(2000)
.
Вместо того, чтобы .hideme
отображался как display: block;
при нажатии, я хочу, чтобы height
переходил от 0px to 30px
к ().delay(2000)
, но при этом сохранял анимацию fade
.
$(document).ready(function() {
$("#post-draft1").hide();
$("#post-button1").click(postNotification);
});
function postNotification() {
$("#post-draft1").fadeIn("slow").delay(2000).fadeOut("slow");
}
.hideme {
background: blue;
height: 30px;
}
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id = "post-button1">Save Click</button>
<div class = "hideme" id = "post-draft1">This is a test div</div>
Чтобы анимировать высоту, вы можете использовать метод jQuery .animate()
.
$('.hideme').animate({height:'30px'});
Но сначала вы должны установить меньшее значение высоты:
.hideme {
background: blue;
height: 0px;
}
Вместо .delay()
вы можете использовать обратный вызов fadeIn
для анимации высоты .hideme
после завершения fadeIn
:
$("#post-draft1").fadeIn("slow", function(){
$('.hideme').animate({height:'30px'});
});
$(document).ready(function() {
$("#post-draft1").hide();
$("#post-button1").click(postNotification);
});
function postNotification() {
// $("#post-draft1").fadeIn("slow").delay(2000).fadeOut("slow");
$("#post-draft1").show().animate({height: '30px',opacity: 1},1000).delay(2000).animate({height: '0px',opacity: 0},1000);
}
.hideme {
background: blue;
height: 0px;
opacity: 0;
}
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id = "post-button1">Save Click</button>
<div class = "hideme" id = "post-draft1">This is a test div</div>