使用jQuery淡化元素的可见性
我在查找JQuery的可见性参数时遇到了一些麻烦。
基本上…下面的代码什么都不做。
$('ul.load_details').animate({ visibility: "visible" },1000);
有没有什么错误的animation代码(我用fontSizereplace了可见性,这很好,我似乎无法find正确的参数名称相当于“可视性”在CSS中。
您可以将不透明度设置为0.0(即“不可见”)和可见性(使不透明度相关),然后将不透明度从0.0增加到1.0(使其淡入):
$('ul.load_details').css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1.0});
因为您将不透明度设置为0.0,尽pipe设置为“可见”,但它是不可见的。 不透明度animation应该让你淡入淡出,你正在寻找。
或者,当然,您可以使用.show()
或.fadeTo()
animation。
编辑: Volomike是正确的。 CSS当然指定opacity
取值在0.0到1.0之间,不在0到100之间。
也许你只是想显示或隐藏一个元素:
$('ul.load_details').show(); $('ul.load_details').hide();
或者你想要使用animation来显示/隐藏元素(这并不意味着当然,因为它不会褪色):
$('ul.load_details').animate({opacity:"show"}); $('ul.load_details').animate({opacity:"hide"});
或者你想真的淡入像这样的元素:
$('ul.load_details').animate({opacity:1}); $('ul.load_details').animate({opacity:0});
也许一个很好的教程将帮助你加快jQuery的速度:
http://www.webdesignerwall.com/tutorials/jquery-tutorials-for-designers/
你不能animation的visibility
。 要么是可见的,要么是不可见(事件1%不透明的项目是“可见的”)。 这很像一半存在 – 没有意义。 你可能更好的animation不透明度(通过.fadeTo()等)。
这可能有助于:
$(".pane .delete").click(function(){ $(this).parents(".pane").animate({ opacity: 'hide' }, "slow"); });
这是对我有用(基于@艾伦的答案 )
var foo = $('ul.load_details'); // or whatever var duration = "slow"; // or whatever if (foo.css('visibility') == 'visible') { foo.css({ opacity: 1 }).animate({ opacity: 0 }, duration, function () { foo.css({ visibility: "hidden" }); }); } else { foo.css({ opacity: 0 }).animate({ opacity: 1 }, duration).css({ visibility: "visible" }); }
当foo
元素可见时,然后慢慢地将不透明度改为零(通过animate
),然后等到设置foo
的可见性被隐藏之前完成。 否则,如果在animation处理过程中设置为隐藏,那么淡出效果将不会发生,因为它是立即隐藏的。
或者,您可以使用更简单,更清晰的fadeTo() :
var foo = $('ul.load_details'); // or whatever var duration = "slow"; // or whatever if (foo.css('visibility') == 'visible') { foo.fadeTo(duration, 0, function () { foo.css({ visibility: "hidden" }); }); } else { foo.fadeTo(duration, 1).css({ visibility: "visible" }); }