animate.css 和 visibility:hidden 的动画
Animation with animate.css with visibility:hidden
我在使用 animate.css 时遇到了一个小问题...我需要在 div 变得可见时使用 fadeIn 设置动画(该部分实际上正在工作)并在它出现时使用 fadeOut 设置动画可见性变得隐藏但它没有动画,它只是消失了......我尝试使用不透明度 1 和 0 并且它有效但不透明度 div 内的按钮仍然有效,我需要它像它一样隐藏页面上不存在..
$("#btnNav").click(
function(){
if($("#navbar").hasClass("hidNav")){
$("#navbar").removeClass("hidNav");
$("#navbar").removeClass("fadeOut");
$("#navbar").addClass("showNav");
$("#navbar").addClass("fadeIn");
}else{
$("#navbar").removeClass("showNav");
$("#navbar").removeClass("fadeIn");
$("#navbar").addClass("hidNav");
$("#navbar").addClass("fadeOut");
}
});
$("#btnAlert").click(
function(){
alert("navbar btn clicked!");
}
);
css
body{
width: 100%;
height: 100%;
}
#navbar{
width:100%;
height:50px;
background-color:red;
animation-duration: 2s;
}
.hidNav{
/*opacity: 0;*/
visibility: hidden;
}
.showNav{
/*opacity: 1;*/
visibility: visible;
}
html
<div id="navbar" class="hidNav animated"><input type="button" style="right:0px;width:30px;height:30px;" id="btnAlert"></div>
<input type="button" id="btnNav" style="top:100px;width:50px;height:50px">
我在 jsfiddle 中针对我的问题做了示例
这可以使用 css 过渡和不透明度来实现。 (不是动画,虽然我不是说动画不可能)。
您需要将 transition:opacity 2s linear;
添加到 class 样式并使用不透明度来显示和隐藏 div。
$("#btnNav").click(
function(){
if($("#navbar").hasClass("hidNav")){
$("#navbar").removeClass("hidNav");
$("#navbar").removeClass("fadeOut");
$("#navbar").addClass("showNav");
$("#navbar").addClass("fadeIn");
}else{
$("#navbar").removeClass("showNav");
$("#navbar").removeClass("fadeIn");
$("#navbar").addClass("hidNav");
$("#navbar").addClass("fadeOut");
}
});
$("#btnAlert").click(
function(){
alert("navbar btn clicked!");
}
);
body{
width: 100%;
height: 100%;
}
#navbar{
width:100%;
height:50px;
background-color:red;
transition:opacity 2s linear;
}
.hidNav{
opacity: 0;
}
.showNav{
opacity: 1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<div id="navbar" class="hidNav animated"><input type="button" style="right:0px;width:30px;height:30px;" id="btnAlert"></div>
<input type="button" id="btnNav" style="top:100px;width:50px;height:50px">
您也可以只使用 jQuery 来完成此操作,如下所示:
$('#navbar').hide();
$("#btnNav").click(
function(){
$("#navbar").fadeToggle( "slow", "linear" );
});
$("#btnAlert").click(
function(){
alert("navbar btn clicked!");
}
);
我还从 CSS 中删除了 "hidNav" 和 "showNav",并将绝对位置添加到 "btnNav"
我在使用 animate.css 时遇到了一个小问题...我需要在 div 变得可见时使用 fadeIn 设置动画(该部分实际上正在工作)并在它出现时使用 fadeOut 设置动画可见性变得隐藏但它没有动画,它只是消失了......我尝试使用不透明度 1 和 0 并且它有效但不透明度 div 内的按钮仍然有效,我需要它像它一样隐藏页面上不存在..
$("#btnNav").click(
function(){
if($("#navbar").hasClass("hidNav")){
$("#navbar").removeClass("hidNav");
$("#navbar").removeClass("fadeOut");
$("#navbar").addClass("showNav");
$("#navbar").addClass("fadeIn");
}else{
$("#navbar").removeClass("showNav");
$("#navbar").removeClass("fadeIn");
$("#navbar").addClass("hidNav");
$("#navbar").addClass("fadeOut");
}
});
$("#btnAlert").click(
function(){
alert("navbar btn clicked!");
}
);
css
body{
width: 100%;
height: 100%;
}
#navbar{
width:100%;
height:50px;
background-color:red;
animation-duration: 2s;
}
.hidNav{
/*opacity: 0;*/
visibility: hidden;
}
.showNav{
/*opacity: 1;*/
visibility: visible;
}
html
<div id="navbar" class="hidNav animated"><input type="button" style="right:0px;width:30px;height:30px;" id="btnAlert"></div>
<input type="button" id="btnNav" style="top:100px;width:50px;height:50px">
我在 jsfiddle 中针对我的问题做了示例
这可以使用 css 过渡和不透明度来实现。 (不是动画,虽然我不是说动画不可能)。
您需要将 transition:opacity 2s linear;
添加到 class 样式并使用不透明度来显示和隐藏 div。
$("#btnNav").click(
function(){
if($("#navbar").hasClass("hidNav")){
$("#navbar").removeClass("hidNav");
$("#navbar").removeClass("fadeOut");
$("#navbar").addClass("showNav");
$("#navbar").addClass("fadeIn");
}else{
$("#navbar").removeClass("showNav");
$("#navbar").removeClass("fadeIn");
$("#navbar").addClass("hidNav");
$("#navbar").addClass("fadeOut");
}
});
$("#btnAlert").click(
function(){
alert("navbar btn clicked!");
}
);
body{
width: 100%;
height: 100%;
}
#navbar{
width:100%;
height:50px;
background-color:red;
transition:opacity 2s linear;
}
.hidNav{
opacity: 0;
}
.showNav{
opacity: 1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<div id="navbar" class="hidNav animated"><input type="button" style="right:0px;width:30px;height:30px;" id="btnAlert"></div>
<input type="button" id="btnNav" style="top:100px;width:50px;height:50px">
您也可以只使用 jQuery 来完成此操作,如下所示:
$('#navbar').hide();
$("#btnNav").click(
function(){
$("#navbar").fadeToggle( "slow", "linear" );
});
$("#btnAlert").click(
function(){
alert("navbar btn clicked!");
}
);
我还从 CSS 中删除了 "hidNav" 和 "showNav",并将绝对位置添加到 "btnNav"