我假設flip
必須只是使用animate
下蓋,默認情況下,您可以排隊多個動畫,然後按順序播放。爲了避免這種情況,您可以告訴給定的動畫不要排隊並立即執行。
那麼試試這個:
$("#flipDiv").flip({
direction:'lr',
content:newContent
});
$("#flipDiv").animate({
'marginLeft' : "+=150px"
}, {queue: false});
欲瞭解更多信息,看看上animate
的API文檔,以及queue
和dequeue
。
編輯:好吧,看着翻轉插件的源現在我相信這個問題是,當你運行flip
它實際上隱藏要素(#flipDiv
你的情況),創建了一個佔位符克隆它在&上執行翻轉動畫,然後在最終狀態下重新顯示原始div。這意味着即使您同時進行動畫,它也會動畫顯示隱藏的div,所以它會突然重新出現在動畫中途或完成後。
你可以嘗試,而不是動畫的克隆,您可以從onBefore
回調訪問,像這樣:
$("#flipDiv").flip({
direction:'lr',
content:newContent,
onBefore: function(clone) {
clone.animate({ 'marginLeft' : "+=150px" }, {queue: false});
})
});
當然不會實際移動原來的div,所以當翻轉結束的div你仍然會在舊的位置,所以你也需要改變它。如果您希望動畫的時間與翻轉時間相同(或更少),那麼您可以直接設置原始的marginLeft,否則您可以對它進行動畫處理,使其大致保持同步。
可能是這種情況。這應該工作。 – Mark 2010-02-17 02:54:36
嗯。這聽起來像是問題,但添加隊列位並不會改變行爲。插件是否有可能暫停正在進行的動畫? – captncraig 2010-02-17 03:02:08
只是好奇,但你在測試什麼瀏覽器? – Mark 2010-02-17 03:03:51