抱歉,我知道这不是一个很好的标题描述,但效果很难描述,需要观察。请参阅下面的jsFiddle。
$(document).ready(function(){
var speed = 2500;
$("div#leftPane p").hide();
$("div#leftPane").click(function() {
$("div#leftPane p").each(function() {
if ($(this).is(":hidden")) {
$(this).show(speed);
exit();
}
});
});
});
基本上,我有一堆p开始隐藏,我想通过鼠标点击一次显示一个。我希望揭示花费半秒钟,使文本消失。问题是在淡入过渡期间,文本在浏览器尝试正确渲染时徘徊。我怎样才能避免那种“杂耍”,只是让它已经呈现淡入淡出,因为它最终会显示出来?
谢谢!
答案 0 :(得分:3)
使用持续时间的show
也会为宽度设置动画效果。较小的宽度会导致文本换行。您可以改为使用slideDown
:
答案 1 :(得分:1)
而不是show
和hide
使用fadeOut
和fadeIn
:
$(document).ready(function(){
var speed = 2500;
$("div#leftPane p").fadeOut(0);
$("div#leftPane").click(function() {
$("div#leftPane p").each(function() {
if ($(this).is(":hidden")) {
$(this).fadeIn(speed);
return false;
}
});
});
});
哦,而不是因为它引发异常而导致exit()
违反的不存在的each
,请执行return false