js获取两点间的角度(指针跟随鼠标旋转动画)

js获取两点间的角度,让指针跟随鼠标绕中心点旋转

怎么让指针跟随鼠标绕中心点旋转呢?看上去好看很难,仔细一想,如果获取到两点间的角度,那么问题就很简单了。

在这里插入图片描述

步骤

1.获取中心点坐标
2.获取鼠标坐标位置
3.使用Math.atan2获取两点间 ,Math.atan2返回作为(x,y)点和x轴角度的数值,然后计算得到角度

1.html

部分代码如下(示例):
代码如下(示例):

<div class="big_clock">
  <img src="./clock/a03.png" alt="" class="indicating_01">
  <img src="./clock/a03.png" alt="" class="indicating_02">
  <img src=".//clock/a03.png"alt="" class="indicating_03">
  <div class="indicating_04" id="indicating_04">
      <img src=".//clock/a04.png" alt="" style=" width: 106px;height: 167px;" class="indicating_img">
   </div>
</div>

2.css

部分代码如下(示例):

.big_clock {
  position: relative;
  width: 618px;
  height: 613px;
  background: url("../img/clock/a02.png") center center no-repeat;
  background-size: cover;
}
.indicating_01,
.indicating_02,
.indicating_03 {
  width: 10px;
  height: 29px;
  position: absolute;
  transform-origin: bottom;
}

3.js

部分代码如下(示例):

 $(document).ready(function () {
	 const indicating_img = $(".indicating_04");
     const img = $(".indicating_04");
     $('.big_clock').mousemove(event => {
        let rect = document.getElementById("indicating_04").getBoundingClientRect();
        //中心位置
        center = {
            x: rect.left + (rect.right - rect.left) / 2,
            y: rect.top + (rect.bottom - rect.top) / 2
         }
         const x = indicating_img.offset().left + indicating_img.width() / 2;
         const y = indicating_img.offset().top + indicating_img.height() / 2;
         const rad = Math.atan2(center.y - event.pageY, center.x - event.pageX);
        let deg = rad / (Math.PI / 180) + 60
        img.css({transform: `rotate(${deg}deg)`});
     })
 })

如果对您有帮助,点个赞吧~~~~ 有问题欢迎留言哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值