html转换原点,javascript – 计算旋转的HTML元素的原点

我目前正在处理如何在元素旋转之前找到初始点的问题.

在我的项目中,我有两个div不能在彼此相同的容器中导致我遇到的问题.

我正在尝试计算已经旋转的元素的初始点,这样我就能正确地将另一个元素放在它上面,然后应用相同的旋转度.为了确保我有正确的坐标可以使用,我有一个div,每次旋转发生时都会标记一个小方块.初始点的蓝色方块和旋转元素的中心点的红色方块.我以为我在Javascript中有公式,但似乎有一些东西.我离0度或180度越远,我的其他元素越远离它应该的位置.以下是我目前的公式.

var angle = (integer passed in to the function. Example: 45)

var rotatedX = blueBox.getBoundingClientRect().left;

var rotatedY = blueBox.getBoundingClientRect().top;

var centerX = redBox.getBoundingClientRect().left;

var centerY = redBox.getBoundingClientRect().top;

var dx = rotatedX - centerX;

var dy = rotatedY - centerY;

var toRadians = (Math.PI / 180);

var dx2 = dx * Math.cos(toRadians * angle) - dy * Math.sin(toRadians * angle);

var dy2 = dx * Math.sin(toRadians * angle) + dy * Math.cos(toRadians * angle);

var initialX = dx2 + centerX;

var initialY = dy2 + centerY;

elementToRotate.style.top = initialX + "px";

elementToRotate.style.left = initialY + "px";

//This just applies the CSS transform:rotate(45deg) to the element

elementToRotate.rotateDegrees(angle);

但是我正在努力让我的项目正常运作.非常感谢任何帮助.如果我需要提供任何其他信息,请告诉我.

这是问题的JS小提琴.

目标是计算黑色框内的水箱.计算适用于0度和180度,并且在45度时非常不正确.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值