类似于用ipad双手指pinch,来扩大缩小浏览器。
用ipad测试,safari浏览器,很简单的一个html。
准备了一个大div色块,在色块div的任意位置,都可以缩放div,缩放的中心基准点,就是每次两个手指按下后,连线的中点。在缩放时,我们可以通过webkit tranform origin来设置基准点,固定位置。
为了以任意位置为基准点,就在每次双手指按下时来获取连线的中点坐标,然后设置给webkit tranform origin。
这样,不管按哪里,都可以改变基准点来缩放。但是,是的~这里有一个但是,每次只要一改变webkit tranform origin的值,现在的画面就会动一下。
比如画面显示后,我按在屏幕右下角开始放大,画面整体就会往右下移动一次,效果就如同瞬间往右下拉拽了一段距离似的。按左边,就往左边动一下。按哪就往哪边动一段。我试了下,发现就是这个属性造成的。(dojo,dom啥的可以无视,关键看设属性webkitTransformOrigin)
dojo.style(this.domNode, "webkitTransformOrigin",XX+ "px " + YY + "px");
因为要动态改变缩放基准点,所以这里XX和YY是每次按下的新中心点。
只要XX,YY改变,画面就跳。请高手帮忙看下吧。