jQuery 3.0.0からアニメーションの更新にrequestAnimationFrameを利用するようになり、このメソッドに対応したブラウザではアニメーションが滑らかに表示されます。そこで、v1.9.0〜とv2.0.0〜でもこのメソッドを利用できるように、v3.0.0 Alpha1のコードから更新間隔の設定をしているところを抜き出してみました。jQuery本体の読み込み後に実行すると対応したコードに書き換わります。
// Quoted from jQuery JavaScript Library v3.0.0-alpha1 (function(window, jQuery) { var timerId; function raf() { if ( timerId ) { window.requestAnimationFrame( raf ); jQuery.fx.tick(); } } jQuery.fx.start = function() { if ( !timerId ) { timerId = window.requestAnimationFrame ? window.requestAnimationFrame( raf ) : window.setInterval( jQuery.fx.tick, jQuery.fx.interval ); } }; jQuery.fx.stop = function() { if ( window.cancelAnimationFrame ) { window.cancelAnimationFrame( timerId ); } else { window.clearInterval( timerId ); } timerId = null; }; }(window, jQuery));
animate拡張プラグイン「jQuery.bezierCurve」を使った動作デモです。requestAnimationFrameに対応した環境では滑らかなアニメーションになっていると思います。