CSS DOMの変更が適用されるまで待つ方法はありますか?ここでjQueryからCSSアニメーションを同期的に実行する
例です。
CSS:
.box {
width: 100px;
height: 100px;
background: red;
}
.anim {
transition: transform 2s;
}
HTML:
<div class="box"></div>
のjQuery:
$(".box").css("transform", "translate3d(200px,0,0)");
$(".box").addClass("anim");
$(".box").css("transform", "translate3d(210px,0,0)");
JSFiddleデモ:https://jsfiddle.net/tfxbej9q/
:<div>
が位置200にジャンプすると、アニメーションが有効になり、ブラウザが円滑にを右に(位置210)移動します。 <div>
スムーズに(私はそれを好きではない)210
私の解決策に位置0から移動されています:は何が起こる
$(".box").css("transform", "translate3d(200px,0,0)"); setTimeout(function() { $(".box").addClass("anim"); $(".box").css("transform", "translate3d(210px,0,0)"); }, 10);
がされているすべての機能がある:setTimeout
機能を追加します。 DOM変更が適用されるまで待っていますか?
あなたのコードでは、これは少しよりよい見えるようにjQueryのに小型の拡張を行いました。そのライブラリを使いたい場合は、使いやすいanimate()メソッドがあります。 http://api.jquery.com/animate/ – cgTag