我正在尝试使用display: none隐藏一个div,然后使用jQuery通过单击一个按钮从Animation.css切换fadeIn动画。
但是,当我尝试切换动画时,它可以工作,但隐藏它不会播放淡出动画。
下面是一个有效的example
HTML:
<div class="window animated"></div>
<button style="margin: 100px;">Toggle Fade Window</button>
CSS:
.window{
background: blue;
width: 200px;
height: 200px;
margin: 20px;
display: none;
}
JS:
$(function() {
$("button").click(function() {
$(".window").toggleClass("fadeIn");
})
})
谢谢!
发布于 2018-08-12 09:11:46
有一些与您的代码相关的问题,以及您对animate.css
库的误解:
fadeIn
中删除div
,它不会自动淡出,您必须添加类fadeOut
in.fadeIn
会将元素的opacity
从0
转换为1
,因此在1
样式中使用display: none
时,它将不起作用。<代码>H213<代码>F214这就是解决问题的方法:
div
没有同时具有fadeIn
和fadeOut
类,这意味着当您第一次呈现视图时,div处于初始状态,因此您需要在中添加fadeIn
类。div
>D25类,这意味着以前的div已经淡入,现在需要淡出。因此,只需从div
中删除fadeIn
并添加fadeOut
类。div
具有fadeOut
类,则需要添加fadeIn
并删除fadeOut
。<代码>H235<代码>F236以下是代码
$(function() {
$("button").click(function() {
if ($(".window").hasClass("fadeIn")) {
// if the div has fadeIn class, remove it and add fadeOut
$(".window").toggleClass("fadeIn").toggleClass("fadeOut")
}
else if ($(".window").hasClass("fadeOut")) {
// if the div has fadeOut class, remove it and add fadeIn
$(".window").toggleClass("fadeOut").toggleClass("fadeIn")
} else {
// if the div has neither of fadeIn nor fadeOut, add fadeIn class in
$(".window").toggleClass("fadeIn")
};
})
})
.window{
background: blue;
width: 200px;
height: 200px;
margin: 20px;
opacity: 0;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.0/animate.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="window animated"></div>
<button style="margin: 100px;">Toggle Fade Window</button>
https://stackoverflow.com/questions/51804183
复制相似问题