任意位置缩放,tranform origin属性的应用

simaxunhua 2012-03-29 05:09:02
类似于用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改变,画面就跳。

请高手帮忙看下吧。
...全文
153 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
simaxunhua 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

设置下transform-origin?
[/Quote]

是的,我就是通过设置 transform origin来动态设置中心点的。
但是,只要一改变transform origin的值,画面就会往新的中心点方向移动一下。
不耐烦 2012-03-29
  • 打赏
  • 举报
回复
设置下transform-origin?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧