我正在开发一个简单的功能,以在用户单击关闭按钮时隐藏消息。奇怪的是,当我使用这段代码时,一切正常,除了一个奇怪的 7 秒延迟。我将 div 设置为在 1000 毫秒内转换为 0 不透明度,然后更改 z-index 以将其放在后面的所有内容中。除了不透明度过渡的延迟之外,这一切都很好。使用此代码时:
$(".x").bind("click",function() {
$('#holder').animate({opacity: "0"}, 1000, "easeOutQuart");
setTimeout(function() {
$('#holder').css('z-index','-1');}, 1000);
我得到了大约 7 秒的无法解释的延迟。如果我将代码更改为:
$(".x").bind("click",function() {
$('#holder').css('display','none');
setTimeout(function() {
$('#holder').css('z-index','-1');}, 1000);
效果立竿见影。显然 setTimeout 函数对显示来说是过度的,但我只是表明它与我所知道的时间问题无关。
有些人问为什么不使用 fadeOut() 并且没有理由不使用,但这并没有改变延迟问题。使用此代码仍有大约 7 秒的延迟:
$(".x").click(function () {
$("#holder").fadeOut("slow");
});
我尝试了很多方法,包括在动画之前添加 .stop() 调用。虽然延迟令人困惑,但该功能作为一个整体工作。当您单击 .x 时,#holder div 消失(延迟后),然后 z-index 更改为在我的其余 div 后面。我对这个功能和方法很满意,只是很困惑为什么会出现如此严重的延迟。我能想到的唯一需要注意的其他项目是代码都在一个 php 文件中并通过 . 想不出为什么那会改变它。
关于这个有什么想法吗?