以下是可能有效的解決方案。
嘗試創建一個將額外回調排隊的新轉換函數。這個回調可以在動畫通過stop出隊後清理。清除和跳過指令但是沒有收到舊的停止功能。但是我們可以爲此創建一個新的停止功能。這是剛纔輸入瀏覽器,並沒有經過充分測試
(function($){
$.fn.stopableTransition = function (...){
var skip = false
var clear = false
this.handle("stopTransition", function(doclear, doskip){
skip = doskip; clear = doclear;
})
this.transition(...)
this.queue(function(){
if(skip){
//todo: ensure animation is removed from css
//todo: move object to where the animation would have finished
}
else
{
//todo: ensure animation is removed from css
//todo: make sure object stays at its current position
}
if(clear){
skip = false
clear = false
$(this).clearQueue()
}
else
{
skip = false
clear = false
$(this).dequeue()
}
})
}
$.fn.stopTransition = function (clear, skip){
clear = (typeof(clear) === 'undefined') ? false : clear;
skip = (typeof(skip) === 'undefined') ? false : skip;
this.triggerHandler("stopTransition", [clear, skip])
this.dequeue();
}
})(jQuery)
我正在尋找相同問題的解決方案。你有沒有嘗試下面的代碼:https://github.com/rstacruz/jquery.transit/issues/18? – 2012-08-13 19:52:38
我還沒有試過。很好的發現。我開始使用簡單的舊jQuery動畫來製作我的動畫,但現在需要暫停,但我肯定會看看這個。 – nicholas 2012-08-15 03:10:22