jQuery中简单的淡入淡出和可见性

我试图通过jQuery .fadeIn()转换将div的css属性visibility更改为visible

这是我的代码:

 $('a').click(function() { $('#test').fadeIn('slow', function() { $(this).css('visibility','visible'); }); });​ 

和小提琴: http : //jsfiddle.net/np6r7/

您无法为visibility制作动画。 fadein被关闭display:none; ,所以这应该是#test的初始状态通过CSS。 如果需要保持布局,可以尝试在div中包装测试,指定所需的高度和/或宽度。

实际上,我喜欢davidaam的回答。 我会做一点修改:

  $('#test').css('visibility','visible').hide().fadeIn("slow"); 

你也可以使用CSS不透明度与JQuery的fadeIn结合来实现同样的目的。

不要在CSS中使用可见性,而是使用opacity: 0; 然后使用jQuery FadeTo将不透明度增加到100%:

$('#test').fadeTo('slow', 1);

这将保持定位,就像可见性一样,但是,重要的是要注意opacity: 0响应诸如click和keypress之类的事件以及参与taborder。 另外,我还读到负责任地使用visibility: hidden而不是display: none对SEO更好,但我不确定这是如何适用于opacity: 0

JSFIDDLE : http : //jsfiddle.net/np6r7/15/