更新: Firefox (25.0) ではなく、Safari/Chrome でコードが期待どおりに機能することに気付きました。
水平にスワイプするパネルでスライドショーを作成しています。
私は animate() が現在の位置で開始する相対位置にあることを期待していますが、すぐに要素を別の位置に移動し、そこからアニメーション化します。
$('section').eq(0).animate({left:'-=500px'},500);
この jfiddle http://jsfiddle.net/ySEZe/1/は問題を示しています
css のせいだと思います ("margin: auto"?) ...css が少し入り組んでいるように見える場合、パネルは中央に配置され、垂直方向と水平方向に配置され、ブラウザのサイズに応答し、最終的にその部分を取得しました動作するため、css の変更によってそれが損なわれないようにする必要があります。
section {
width:100%;
height:100%;
background-color: #f00;
bottom: 0;
height: 100px;
width: 180px;
left: 0;
margin: auto;
position: absolute;
top: 0;
right: 0;
padding:0px;
}
以下は、問題の別の角度です。
var div1 = $('section').eq(0);
var pos = div1.position();
div1.animate({left:''+pos.left+'px',opacity:'1'},0);
職場でhttp://jsfiddle.net/AzXW5/3/
パネルが既にある場所ではなく、新しい位置にアニメーション化されます。基本的には、animate() しようとしたときにジャンプしたポイントにパネルを配置します。私が理解していない何らかの画面オフセットが発生していると思います。
現在の pos.left を保存してそこに戻るのではなく、 left:0 にアニメーション化することで開始位置に戻ることができることがわかりました。しかし、私はまだ私のアニメーションで醜いジャンプをします. 誰が何が起こっているか知っていますか?