Javascript 获取旋转div的实际左上位置
如果我有一个旋转45度的div,它的属性是:left:0,top:0,width:100px,height:100px我可以获得divs左上角的实际x,y位置吗? 旋转div时,左上角大约位于-10px,-10px(猜测)。但我试图计算web应用程序的实际左上角x,y位置Javascript 获取旋转div的实际左上位置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如果我有一个旋转45度的div,它的属性是:left:0,top:0,width:100px,height:100px我可以获得divs左上角的实际x,y位置吗? 旋转div时,左上角大约位于-10px,-10px(猜测)。但我试图计算web应用程序的实际左上角x,y位置 也许你知道一个可以确定左上角x,y位置的数学公式?或者一个javascript属性会给我它?例如div.style.actualLeft 如果是静态45度,且旋转原点位于中心,则只需计算一次,即: sqrt((width/2)
也许你知道一个可以确定左上角x,y位置的数学公式?或者一个javascript属性会给我它?例如div.style.actualLeft 如果是静态45度,且旋转原点位于中心,则只需计算一次,即:
sqrt((width/2)^2+(height/2)^2)
sqrt(50^2+50^2) // Pythagorean theorem
这是7071067811865475
所以和原点相比,x方向是负的707106。。。从y的角度看是0
如果你要动态地旋转它,那么你必须一直知道它,那么瞧!瞧
计算一次距离,sqrt(50^2+50^2)
,然后将其乘以要添加到立方体的旋转+135度(因为它位于左上角)。(90=直线上升,+45=135)
所以为了得到同样的答案,我只是说:
var dist=Math.sqrt(50^2+50^2);
var degtorad=Math.PI/180;
var x = Math.cos(degtorad * (135+rotation)) * dist;
var y = Math.sin(degtorad * (135+rotation)) * dist;
现在x&y将相对于原点。如果你需要更多的帮助,那么在你的问题上要更具体,这样我们才能更好地回答,帮助我们帮助你
快速计算:
rotation=45
135+45 = 180
Math.cos(degtorad * 180)) = -1
Math.sin(degtorad * 180)) = 0;
x = -1 * dist = -70,71067811865475
y = 0 * dist = 0
瞧,就像我刚开始计算静态时说的,我只是没有使用任何cos/sin。。但这同样有效。(-75也行)@jacktheripper是的,永远是Squares谢谢你的回答。但是代码中的变量“旋转”是什么?值135不是已经将45(我的旋转)添加到90了吗?那么它应该是(90+旋转)而不是(135+旋转)吗?这也可以用-75度这样的角度吗?旋转是指立方体旋转的程度,135是从中心到左上角的方向。0=右45=右上135=左上