我有一個模式框,我用Jquery打開。當關閉按鈕被調用時,模式框被關閉。一切工作正常,但更多的我打開和關閉模式對話框,它需要對模式對話框的時間越長,收:JQuery的動畫播放速度較慢每個調用
window.closeModal = function() {
modal = $("div.modal-overlay");
windowHeight = $(window).height();
// Until here performance is good
modal.animate({top: windowHeight, }, 800, function() {
// This is the problem
modal.hide();
$("body").css("overflow-y", "scroll");
});
}
我已經把控制檯日誌的每一行,並立即執行的一切,直到我打modal.animate函數。每次我打開一個模式,然後按下關閉按鈕,它需要更多時間,直到modal.animate開始執行。
任何人都可以請一些光。
@EDIT: 我創建了一個顯示問題的jsfiddle。
只要按開模態,然後關閉模態。執行此4-5次看到延遲做大
@@編輯:很奇怪的東西發生。
雖然openModal的一次,iframe.load執行#倍模式的開啓和關閉...
window.openModal = function (url) {
console.log("open start");
modal = $("div.modal-overlay");
modalIframe = $("div.modal-overlay iframe");
windowHeight = $(window).height();
modal.css("bottom", "0");
modalIframe.attr("src", url + "?frame=true");
modalIframe.load(function() {
console.log("open load")
modalIframe.css('height', windowHeight);
modal.show().animate({
top: 0,
}, 800, function() {
$("body").css("overflow-y", "hidden");
});
});
}
嘗試減少持續時間(800〜400)來完成動畫快一點.. – web2008
笑@ web2008 - 它需要更長的時間,每次他可以。它不只是太慢! – Archer
@阿徹,正好。這並不是說動畫會被堆疊起來,因爲在新動畫被觸發後動畫會很長時間。 – Nealv