jQuery fadeOut没有显示没有?

Kyl*_*ers 72 jquery

是否有替代fadeOut()的样式不使用display:none?我想隐藏可见性以避免页面布局中的任何变化?

Nic*_*ver 113

您可以使用.animate()opacity直接:

$(".selector").animate({ opacity: 0 })
Run Code Online (Sandbox Code Playgroud)

这样,元素仍然可以像你想要的那样占据空间,它只是具有0不透明度,所以它实际上visibility: hidden它完成时的效果相同.

  • 用户仍然可以单击元素(*例如*链接),在这种情况下,您可能希望在完成回调函数中设置`visibility:hidden;`或类似的东西. (12认同)

use*_*716 66

是的,还有另一种选择.它被调用.fadeTo(),你设置目标不透明度,在你的情况下0.

$('element').fadeTo( 1000, 0 ); // fade to "0" with a 1000ms duration
Run Code Online (Sandbox Code Playgroud)

这不会改变最后的display财产.

  • 当淡入0时,这不会添加display:none,但是如果淡入0以上的值,则会强制显示:block(至少当你有display:none时).所以它确实在某些情况下改变了显示属性.我不得不使用animate()来避免这种情况. (3认同)