私は、スライダにアニメーションを制御させるのではなく、アニメーションオブジェクトによってスライダを制御する理由を質問します。プレイバーがアニメーションを制御できるようにすると、ユーザーは予想通りにシャッフルできます。私は作業デモをhttp://jsbin.com/ijokaに入れました。再生時に再生ヘッドをインクリメントするインターバルタイマーがあり、スライドとスライド変更イベントがアニメーションをトリガーします。
<script type="text/javascript">
var playing = false;
var interval;
var i = 0;
$(function() {
$('#slider').slider({min: 0, max: 100});
$('#slider').bind('slide', function(e, ui) { i = ui.value; a(ui.value);}).bind('slidechange', function(e, ui) { a(ui.value);});
});
function a(p) {
$('#box').css('left', p + "%");
}
function play() {
if(playing) {
playing = false;
clearInterval(interval);
} else {
i = $('#slider').slider('value');
playing = true;
interval = setInterval(step, 100);
}
}
function step() {
i = i + 2;
$('#slider').slider('value', i);
}
</script>
cbeer、あなたは正しいです。私の最終的な目標は、スライダーのアニメーションをコントロールすることで、上の簡単な質問です。 あなたの例に示されているように、同様の解決策を考えたとき、アニメーションは非常にぎくしゃくしています。私は、この値をインクリメントする値を小さくすることでソートすることができますが、これはjQuery.animate()ほど滑らかなものになるのでしょうか? – Hady
小さい値を増やすことは確かに役立ちます - 私は10ティック/秒を選択しました。これは知覚の範囲の中でも低い+ですので、現れにくくなります。私はjQuery.animate()が同様のティックのシステムを使用していると思いますが、私はそれらの内部を見ていません(新しいCSSアニメーションのいくつかを使用してさらに滑らかにする可能性もあります)。 – cbeer