我正在制作一个 HTML5 应用程序,并且我使用 CSS3 转换(css3 旋转)来使用可拖动的 jQuery ui 从其一端旋转箭头。我已经集成了 jQuery UI Touch Punch 库(v0.2.2)来模仿 Ipad 和平板电脑等触摸设备上的拖动事件。
箭头在除 Android 平板电脑 (4.1) 之外的所有平台上都能顺畅旋转。似乎我得到了一种滞后,它以帧为单位旋转(箭头在我的手指在设备上旋转 3-4 秒后旋转),或者它无法按时检测到我的触摸。我已经在许多平板电脑上进行了测试,所以我很确定这不是硬件问题。在互联网上查找后,我发现 android 上的 css3 动画在转换方面存在问题。但我不认为这是原因。
这是我的代码。虽然我确信性能问题与代码无关,但如果您仍然觉得,请随时评论并提高性能。如果有其他可用的库可以实现与 jquery touch punch 相同的功能,我也愿意对其进行测试。请建议。
$('#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,
});
}
});