2

感谢您对以下问题的帮助:我想使用 CSS3 转换以使浏览器的视口围绕鼠标单击的位置居中。请查看我在http://jsfiddle.net/XjpdU/上的评论示例。

我遇到的问题是翻译只有在第一次点击时才能正常工作。第一次单击后,视口中心和鼠标单击位置之间的距离似乎计算正确,但平移似乎只是在任何地方跳跃。

我试图明确地将“转换原点”(在我的示例中为-webkit-translate-origin)设置为最后一次点击的位置(即视口的当前中心),但似乎使用“翻译” 'transform-origin' 指令会被忽略。

感谢您的帮助!y

4

1 回答 1

0

是的,transform-origin 对翻译没有影响。它是这样工作的:

  1. 从单位矩阵开始。
  2. 通过“transform-origin”的计算 X、Y 和 Z 值进行转换</li>
  3. 依次乘以“变换”属性中的每个变换函数
  4. 通过“transform-origin”的求反计算 X、Y 和 Z 值进行转换

http://www.w3.org/TR/css3-transforms/#transform-rendering

您可以做的是记住翻译,并将新计算的翻译添加到其中,这将导致从前一点开始的相对翻译。

x = prevX = prevX + newX
y = prevY = prevY + newY

http://jsfiddle.net/XjpdU/1/

于 2012-10-05T22:20:55.150 回答