从旋转的div获取未旋转的坐标

时间:2017-06-27 12:12:34

标签: javascript

我有一个旋转的div。我实际上想知道它旋转之前的原始左侧和顶部坐标。

我一直在寻找不同的公式,但我想我需要有人来帮助我。

谢谢,

<html>
 <body>
  <div id="test" style="width:50px;height:50px;background-color:yellow;tranform:rotate(45deg);transform-orgin:top left">
  </div>
 </body>
</html>

作为一个公式,我找到了这个。

function rotatedPosition(pLeft, pTop, oLeft, oTop, angle){
    // 1
    var x = pLeft - oLeft;
    var y = pTop - oTop;

    // 2
    var xRot = x * Math.cos(angle) - y * Math.sin(angle);
    var yRot = x * Math.sin(angle) + y * Math.cos(angle);

    // 3
    var pLeftRot = xRot + oLeft;
    var pTopRot = yRot + oTop

    return {left: pLeftRot, top: pTopRot};
}

这将计算旋转坐标。我试图修改它,以便它计算原始坐标而不是旋转坐标。但是很久以前这种数学对我来说。

使用css transfrom:rotate(45deg);变形起源:左上角;我得到这个div已经旋转,所以我不知道它是未旋转的坐标。最后我需要获得div的顶部和左侧位置,因为它看起来没有旋转。

1 个答案:

答案 0 :(得分:-2)

好的,它是......在调用rotatePosition函数之前存储顶部和左侧值。 顺便说一下,我建议你在函数体中使用 let const 而不是 var 。这样那些标识符只存在于那里。

 import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox=outlook.GetDefaultFolder(6)
messages = inbox.Items
message = messages.GetLast()
mess=message.Body            #Body attribute fetches the body of the message
print mess                   #There is no InternetHeader attribute

我不知道你在哪里调用rotatePosition函数。这只是一个想法,你也可以存储这些值调用另一个函数。