私は.animate
このページ全体でjQueryを使用していますが、ユーザーがメッセージをクリックした後にユーザーに「目標完了」メッセージを非表示にするこの1行を除いて、すべてが非常にうまく機能します. 謎はアニメーションコマンドの連鎖にありますが、関数全体を含めています。私は.animate()
優雅なものに使用していますが、オブジェクトがユーザーの視界から外れると、すばやく汚れ.css()
ます...何を微調整しても、この1つのdivは長い遅延が経過するまでアニメーション化されないようです。 ..
私がすでに試したこと:
1) jQuery コマンドのチェーンを一度に 1 つずつ分離: --> 結果: すべてのアニメーションが同時に実行されますが、最初のアニメーションは実行前に 8 秒待機することを除きます。
2) 書かれているのとまったく同じコードですが、ページの別の場所でランダムな div に切り替えます。これは明らかに私が本当に非表示にしたい "#kbm" です --> 結果: 新しく選択された div は正しく動作し、すべてのアニメーションは正しい順序でタイムリーに
3) HTML 内の要素の順序を再配置する
position: relative
4)代わりに試すabsolute
.css
5)スクリプトからコマンドを削除し.animate
、すべてに使用する
ジャバスクリプト:
function loadnextpage(response)
{
word = response["word"];
imgarray = response["imgarray"];
loadgame();
$("#kbm").animate({"top": "-340"},500,function(){
$("#kbm").css("top","-1000px");
$(".key").animate({"left": "0px"},1000,function(){
$("#keyboard").css("overflow", "visible");
});
});
}
HTML:
<body>
<div id="pagec">
<div id="mainc">
<div id="wordpic"><div id="wordpicbg" class="bg"></div></div>
<div id="wordblanks"><div id="wordblankbg" class="bg"></div></div>
<div id="keyboard">
<div id="keyboardbg" class="bg"></div>
<div id="kbm"><img src="i/medal.png"><img src="i/arrow.png" id="arrow" onclick="loadnext()"></div>
</div>
</div>
</div>
</body>
CSS:
#kbm
{
display: inline-block;
position: absolute;
left: 340px;
top: -1000px;
width: 500px;
height: 340px;
}