使用CSS3硬件加速的拖动小示例
示例如下图: 可直接访问:http://easymorse.googlecode.com/svn/tags/WebBook-0.2/test.html,需要注意只能跑在有webkit浏览器的触摸设备上。 为什么会抖动 在iPad上,如果用传统的改变html元素的左上顶点坐标(left、top),会有可被用户察觉的抖动现象。 这是因为,浏览器不确定是否要使用GPU硬件加速,也许这个操作只是移动一个元素到某个位置。 这种指定顶点的做法,在鼠标操作设备上不会出现抖动现象,是因为鼠标的轨迹是连续的。而触摸设备的手指移动是离散的。 另外,浏览器是假定可用可不用硬件加速的地方,就不用硬件加速,这是因为,对于移动设备来说,硬件加速更消耗电池。 使用CSS3的translate,浏览器将使用硬件加速,手指移动的坐标离散量,会自动形成动画,这样看起来就不会抖动了。 另外,translate的另一个好处是和css布局无关,坐标是针对元素自己的,也就是从(0,0)开始。 发送文章为PDF