トランジションに問題があります。CSSのトランジションを削除し、要素を移動してから再度移動してから適用してください。
私は左のプロパティにトランジションを持っています。 divを左から860pxから-860pxへの遷移なしで移動したい場合は、遷移で0pxに移動します。
要素に遷移を与えるクラスを削除した場合は、左に-860pxを与えるクラスを適用してください。移行なし。
左から0pxに変更する前にトランジションを適用したいので、再びトランジションクラスを追加し、左に0のクラスを付けます。クロムでこれを行うと、トランジションが適用されます0に加えて-860pxの位置への途中の要素で、私が望むものではありません。
私はまた、間に遅延を避けたいと思います。しかし、私は、Chromeが-860pxで要素を再レンダリングしたときに私に知らせるイベントがあるとは思わない。何か案は?
ここにいくつかのコード例を示します。トランジションを持つクラスは:
.div-transition {
-webkit-transition:all 0.8s ease-in-out;
-moz-transition:all 0.8s ease-in-out;
-o-transition:all 0.8s ease-in-out;
transition:all 0.8s ease-in-out;
}
$(".div-to-transition").removeClass('div-transition');
$(".div-to-transition").css('left', '-860px'); // So far so good, if I don't add the next two lines.
$(".div-to-transition").addClass('div-transition');
$(".div-to-transition").css('left', '0'); // Now it applies a transition as we move left to -860px, AND from -860px to 0.
いくつかのコードを共有する... –
とにかくjQueryが必要な場合は、左のプロパティを 'style.left'を使用して設定してから、クラスを追加してみてください。要素が-860pxにあるかどうかを検出します。これが試してみたいと思っているものの、立ち往生しようとしているものなら、いくつかのコードを追加してください。 – Toby
@eskimo - サンプルコードをいくつか追加しました。 – user2451412