ユーザーが閉じるボタンをクリックしたときにメッセージを非表示にする単純な機能に取り組んでいます。奇妙なことに、このコードを使用すると、奇妙な 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ファイル内にあり、. なぜそれがそれを変えるのか考えられません。
これに関するアイデアはありますか?