【发布时间】:2020-10-13 17:32:44
【问题描述】:
我有以下脚本,当单击#icon-hamburger 时显示/隐藏下拉菜单。菜单在显示/隐藏时有一个短暂的淡入淡出动画:
// nav-mobile
$('#icon-hamburger, .icon-close').click(function() {
if ($('.nav-mobile').css('opacity') === '0') {
$('.nav-mobile').show();
$('.nav-mobile').animate({
'opacity': '1'
},
250, function() {
// Animation complete.
});
}
if ($('.nav-mobile').css('opacity') === '1') {
$('.nav-mobile').animate({
'opacity': '0'
},
250, function() {
// Animation complete.
});
$('.nav-mobile').delay(250).hide();
}
return false;
});
菜单淡入就好了,但不是淡出而是消失了。我原以为以下行会允许元素在隐藏之前淡出?:
$('.nav-mobile').delay(250).hide();
【问题讨论】:
-
我要确保更改的一件事是将
if ($('.nav-mobile').css('opacity') === '1') {更改为else if ($('.nav-mobile').css('opacity') === '1') {。您的代码现在的方式是,如果不透明度为 0,则动画为 1。然后您的不透明度为 1,动画回 0。
标签: javascript html jquery animation jquery-animate