我有一个模式框,我用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