由于添加了scrollTop-animation,因此回調(diào)的某些部分被調(diào)用了兩次:$('html, body').animate({scrollTop: '0px'}, 300,function() { $('#content').load(window.location.href, postdata, function() { $('#step2').addClass('stepactive').hide().fadeIn(700, function() { $('#content').show('slide',800); }); });});它似乎只重復(fù)了一次.show(),至少我沒有第二次調(diào)用load()或.fadeIn()get 的印象。在.show()得到盡快,因為它已經(jīng)完成了第一次重復(fù)。0順便說一下,將scrollTop動畫速度設(shè)置為無益!我認(rèn)為這與動畫隊列有關(guān),但是我不知道如何找到解決方法,尤其是為什么會這樣。
3 回答

開滿天機
TA貢獻1786條經(jīng)驗 獲得超13個贊
若要獲得單個回調(diào)以完成多個元素動畫,請使用延遲的對象。
$(".myClass").animate({
marginLeft: "30em"
}).promise().done(function(){
alert("Done animating");
});
有關(guān)Promise和Deferred對象的詳細(xì)說明,請參見jQuery API 。

揚帆大魚
TA貢獻1799條經(jīng)驗 獲得超9個贊
我通過創(chuàng)建一個標(biāo)記來處理它: var ranOne = false; $('body,html').animate({ scrollTop: scrollTo }, scrollTime, 'swing', function () { if (ranOne) { ...action... ranOne = false; } else { ranOne = true; } });
感覺很hacky,但是首先必須使用“ body,html”是一種hacky,因此。(非常抱歉,缺少換行符,猜測注釋未顯示這些內(nèi)容)
- 3 回答
- 0 關(guān)注
- 835 瀏覽
添加回答
舉報
0/150
提交
取消