我正在使用 visibility: hidden;
和 visibility: visible;
来显示和隐藏诸如模态框和其他 div 等元素。我希望在单击 <a>
链接运行 JavaScript 显示和隐藏 div 时有一个淡入效果,但我非常希望继续使用 visibility
元素来切换 div 的可见性。是否有一种使用 HTML/CSS/JavaScript/jQuery 实现这一点的方法?
我正在使用 visibility: hidden;
和 visibility: visible;
来显示和隐藏诸如模态框和其他 div 等元素。我希望在单击 <a>
链接运行 JavaScript 显示和隐藏 div 时有一个淡入效果,但我非常希望继续使用 visibility
元素来切换 div 的可见性。是否有一种使用 HTML/CSS/JavaScript/jQuery 实现这一点的方法?
在 jQuery 中:
$('selector').fadeIn();
使用CSS时,可以使用opacity属性控制元素的透明度(例如设置为50%)。
-moz-opacity:.50;
filter:alpha(opacity=50);
opacity:.50;
如果你想手动执行fadeIn效果,可以逐渐调整元素的不透明度,当达到完全透明时,再添加display:none
属性。但如果您已经使用jQuery,最好使用fadeIn()
方法。
fadeIn()
方法也支持速度控制,只需要在第一个参数中设置毫秒数即可。具体用法请参考文档:http://api.jquery.com/fadeIn/
如果希望保留CSS的display
属性,可以使用fadeTo()
方法。该方法需要设置不透明度的百分比作为参数。详细说明请参考:http://api.jquery.com/fadeto/
$(this).fadeTo("slow", 1); // 100% visible
$(this).fadeTo("slow", 0); // 0% visible aka hidden
fadeIn()
和 fadeOut()
可以处理它。但是手动操作不行。您还需要更改 display:none
。 - Rene Potdisplay:none
,因为它会导致其后的流式布局元素移动。 - Shmiddtyvisibility: hidden
,.fadeIn()
不会有任何效果。 - Peter Ajtai$('#a-id').click(
if( $('#div-id').css('visibility') == 'hidden'){
$('#div-id').animate({opacity: 1}, 'fast', function(){
$('#div-id').css('visibility', 'visible');
});
}else{
$('#div-id').animate({opacity: 0}, 'fast', function(){
$('#div-id').css('visibility', 'hidden');
}
);
我相信还有更好的方法来完成这个任务,但是据我所知,这种方法可以顺利地运行。
fadeOut
。$('#div-id').fadeOut(function() { $('#div-id').css('display', 'block').css('visibility', 'hidden'); })
- SkillzorefadeIn
,虽然它可以工作,但是它立即执行而没有任何淡入效果,我已经尝试了 "slow"、"fast" 和 500 - 都没有淡入效果。 - PandaWood$("#hideme").click(function(){
$(this).removeClass("fadein").addClass("fadeout");
setTimeout(function(){
$("#hideme").removeClass("fadeout").addClass("fadein");
}, 2000);
});
CSS
#hideme{
border:solid 1px #000;
background:#ccc;
padding:20px;
}
@-webkit-keyframes fadeout{
0%{opacity:1;visibility:visible;}
99%{opacity:0;}
100%{opacity:0;visibility: hidden;}
}
.fadeout {
-webkit-animation:fadeout 1s linear;
visibility:hidden;
}
@-webkit-keyframes fadein{
0%{opacity:0;visibility:visible;}
100%{opacity:1;}
}
.fadein {
-webkit-animation:fadein 1s linear;
}
我更喜欢Rene的答案,但如果你非常想使用visibility属性(正如你所说),那么你可以使用css()来实现:
$('selector').css('visibility', 'hidden');
$('selector').css('visibility', 'visible');