私は HTML5 アプリケーションを作成しており、jQuery ui ドラッグ可能を使用して一方の端から矢印を回転させるために CSS3 変換 (css3 回転) を使用しました。jQuery UI Touch Punch ライブラリ (v0.2.2) を統合して、Ipad やタブレットなどのタッチ デバイスでそのドラッグ イベントを模倣しました。
Android タブレット (4.1) を除くすべてのプラットフォームで矢印がスムーズに回転します。一種のラグが発生しているようで、フレーム単位で回転する (デバイス上で指を回転させてから 3 ~ 4 秒後に矢印が回転する) か、時間通りにタッチを検出できません。これを多くのタブレットでテストしたので、ハードウェアの問題ではないと確信しています。インターネットで調べたところ、変換に関してアンドロイドの css3 アニメーションに問題があることがわかりました。しかし、それが理由だとは思いません。
これが私のコードです。パフォーマンスの問題はコードに関連していないと確信していますが、それでもそう感じる場合は、お気軽にコメントしてパフォーマンスを改善してください。jquery タッチ パンチと同じ機能を実装するライブラリが他にある場合は、それらも試してみたいと思います。提案してください。
$('#arrow').draggable({
handle: '#arrow',
opacity: 0.01,
helper: 'clone',
refreshPositions: true,
cursorAt : {left: 0 , top: 0},
drag: function(event, ui){
var curr_x = ui.offset.left;
var curr_y = ui.offset.top;
var radians = Math.atan2(curr_x - 40, curr_y - 500);
var degree = (radians * (180 / Math.PI) * -1) + 90;
var rotateCSS = 'rotate(' + degree + 'deg)';
$(this).css({
'transform': rotateCSS,
'-moz-transform': rotateCSS,
'-webkit-transform': rotateCSS,
'-ms-transform': rotateCSS,
'-o-transform': rotateCSS,
});
}
});