[英]Get elements top and left position after being rotated
当我通过旋转元素时
myElem.css('-moz-transform', 'rotate(' + degree + 'deg)');
myElem.css('-webkit-transform', 'rotate(' + degree + 'deg)');
myElem.css('-o-transform', 'rotate(' + degree + 'deg)');
myElem.css('-ms-transform', 'rotate(' + degree + 'deg)');
我需要得到正确的左/顶位置......
myElem.getBoundingClientRect().left
...没有提供正确的x / y位置。 以及使用jQuery的fe ...
$(myElem).position().left
......提供错误的价值观。
这是一张显示我的意思的图片
(来源: dasprinzip.com )
该怎么办?
我写了你的jsfiddle其希望会给你的成分,一切问题: http://jsfiddle.net/pM54e/2/的span
在小提琴是测试如果该值是正确的。 给它一个由公式计算的高度,看它是否与橙色框的角相匹配。
var numY = Math.abs(myElem.position().top + sign*( (myElem.outerHeight() / 2) - Math.sin(degree)));
这将确定旋转元素左上角的Y位置。 请记住(myElem.outerHeight() / 2)
是元素的transform-origin
。 默认值为元素高度和宽度的50%。 如果更改原点,则必须在公式中更改该值。
我现在没有太多时间去弄清楚x位置并提供更详细的例子,但是当我明天找到时间时,我会用更多的测试,细节和x值来更新我的答案。
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.