3072px
ボタンでimgの右への移動を停止するようにしようとしています。if
アニメートボタンの中にステートメントを入れる必要があると思います。そうですか?
$(document).ready( function() {
$('a.click').click(function() {
$('img').animate({right : '+=1024'} , 'slow' );
});
});
3072px
ボタンでimgの右への移動を停止するようにしようとしています。if
アニメートボタンの中にステートメントを入れる必要があると思います。そうですか?
$(document).ready( function() {
$('a.click').click(function() {
$('img').animate({right : '+=1024'} , 'slow' );
});
});
$(document).ready(function () {
var $a = $('a.click');
$a.on('click', function () {
$('img').animate({
right: '+=1024'
}, {
step: function (now, fx) {
if (now >= 3072) {
$(fx.elem).stop();
// $a.off('click');
}
}
});
});
});
このstep
オプションを使用すると、堅牢なアニメーション制御が可能になります。
$('a.click').click(function()
{
var $img = $('img');
$img.animate({right: '+=1024'},
{
duration:'slow',
step:function() { if ($img.offset().left + $img.width() >= 3072) $(this).stop(); }
}
});
このアプローチを拡張して、ウィンドウの境界、別の要素、またはアニメーションの進行中に変化する可能性のある値をチェックできます。
あなたの質問が正しければ、このようなものは問題ないはずです。
$('a.click').click(function() {
var $img = $('img');
if ($img.css('right') <= (3072 - 1024)) {
$img.animate({right : '+=1024'} , 'slow' );
}
});
.css('right')
right
CSS プロパティの計算値を取得するために使用されます。また、2 回$img
のクエリを避けるために、jQuery オブジェクトをキャッシュするために使用されます。DOM
クリック ハンドラーで、まず現在の権限と の差を計算し、3072
それが より大きい場合は1024
でアニメーション化し+=1024
ます。そうでない場合は、違いが何であれ += を実行します。
何かのようなもの:
$('a.click').click(function() {
var $img = $('img');
var delta = 3072 - $img.css('right');
var anim = delta > 1024 ? 1024 : delta;
$img.animate({right : '+=' + anim} , 'slow' );
}
});