【发布时间】:2016-10-09 08:18:34
【问题描述】:
我有一个fadeOut的以下代码,加载另一个内容和fadeIn,但我有一个问题,有时,当加载函数非常快时,它甚至在时间轴完全fadeOut之前切换加载的内容,所以在这种情况下效果有点奇怪。我怎样才能防止这种情况?
注意 我想在点击后立即加载内容,所以将加载函数放入第一个fadeTo回调函数不是解决方案。谢谢!
$(".switches li").click(function(evn) {
$(".switches li").removeClass("active");
$(evn.target).addClass("active");
$(".timeline").fadeTo(400, 0, function(){
$(this).css("visibility", "hidden");
});
$(".timeline").load("inc-timeline/"+evn.target.id+".html", function() {
$(this).fadeTo(400, 100, function() {
$(this).css("visibility", "visible");
if(evn.target.id === "data-girls") {
$(".data-girls-powered").fadeIn(400);
} else {
$(".data-girls-powered").fadeOut(400);
}
});
});
});
【问题讨论】:
-
将加载逻辑移到fadeTo回调中(或者使用更多回调,或者使用promise)
-
请阅读注释,我不想将加载逻辑移到第一个 fadeTo 回调中,因为那样有时会花费很多时间:-(
标签: javascript jquery fadein fadeout jquery-effects