Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取旋转div的实际左上位置_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 获取旋转div的实际左上位置

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)

如果我有一个旋转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)^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=左上