Vue中Dom元素跟随鼠标移动

1 .** 确认跟随鼠标的是一个Dom元素**

<template>
  <div class="moveWithMouse">
    <p>
      div元素
    </p>
  </div>
</template>


<style scoped>
.moveWithMouse{
  position: absolute;
  left: 10px;
  top: 10px;
  height: 300px;
  width: 300px;
  background-color: red;
}
</style>

83165fc1-cb7e-4b41-acf1-0b16d50a4200.png

2. 获取X坐标和Y坐标。

由于是跟随鼠标所以必须获取鼠标移动时X的坐标和Y的坐标,可以使用window.addEventListener(‘mousemove’,function (ev) {})来获取,其中ev.pageX获取横坐标,ev.pageY获取纵坐标。

3. 获取Dom元素并设置新位置

给相应的dom元素加className,使用getElementsByClassName(“className”)来语句获取该元素;然后使用Dom.style.来设置新的位置

let div = document.getElementsByClassName("moveWithMouse")
div[0].style.left = ev.pageX + 'px'
div[0].style.top = ev.pageY + 'px'

4. 完整代码及注意事项

<template>
  <div class="moveWithMouse">
    <p>
      div元素
    </p>
  </div>
</template>

<script>
export default {
  name: 'DomMoveWithMouse',
  mounted() {
    // 监听鼠标移动事件,触发moveWhthMouse方法
    window.addEventListener('mousemove',this.moveWhthMouseMethod)
  },
  methods: {
    moveWhthMouseMethod() {
      let div = document.getElementsByClassName("moveWithMouse")
      // 注意 获取的是所有ClassName=“moveWithMouse”的dom元素
      console.log(div)
      window.addEventListener('mousemove',function (ev){
        // 获取Dom元素位置
        console.log(ev.pageX)
        console.log(ev.pageY)
        // 设置Dom元素的位置
        // 注意:ev.pageX、ev.pageY是不带单位的,使用时需要加上单位px
        div[0].style.left = ev.pageX + 'px'
        div[0].style.top = ev.pageY + 'px'
      })
    }
  }
}


</script>

<style scoped>
.moveWithMouse{
  position: absolute;
  left: 10px;
  top: 10px;
  height: 300px;
  width: 300px;
  background-color: red;
}
</style>

1667790885922

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

€云起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值