我有很大的内容(很多照片)。我想使用css3过渡变换。 我绑定到touchmove事件,并计算新的x位置。
但是我有问题:x的位置在移动设备上没有顺利改变(在desctop上都没问题)。 Event Touch带有延迟。
我试着hidde不使用内容(vissability:hidden)它没有帮助。
答案 0 :(得分:1)
尝试限制事件处理程序进行更改的速度。这是违反直觉的,但通过减慢速度,你会让它们看起来更快。 touchmove事件的触发速度非常快,远远快于屏幕的刷新率。
理想情况下,您可以使用requestAnimationFrame来执行此操作。
或者,如果这对您的品味来说太过实验性,那么只需确保您没有以超过每秒60帧的速度执行事件处理程序操作(每1000/60毫秒执行一次事件处理程序操作,即屏幕刷新率)。如果在1000/60毫秒仍有问题,请尝试较慢的速率。视频的帧速率为每秒30帧。 30到60帧的东西应该看起来不错。
所以看起来像这样:
var lastFrameTime;
var myTouchMoveHandler = function (e) {
var now = Date.now();
if (now < lastFrameTime + 1000/60) {
return;
}
// your event handler code afterward
// ...
// then update the lastFrameTime
lastFrameTime = now;
}