vue2实现窗口拖动

本文介绍了如何在Vue2项目中通过JavaScript事件监听(如mousedown、mousemove和mouseup)实现窗口的拖动功能,包括获取元素引用、跟踪鼠标位置并更新元素位置的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在vue2的项目中实现窗口的拖动效果

<div class="notification" ref="notification" v-if="modalVisible" @mousedown="startDrag"></div> 

我写的这个 点击后窗口显示出来 我当时实现的是显示的窗口可以进行拖动的效果

    // 拖拽功能
    startDrag(event) {
      this.notification = this.$refs.notification; // 获取弹窗元素的引用
      this.startX = event.clientX;
      this.startY = event.clientY;
      this.offsetX = this.notification.offsetLeft;
      this.offsetY = this.notification.offsetTop;

      document.addEventListener('mousemove', this.dragging);
      document.addEventListener('mouseup', this.stopDrag);
    },
    dragging(event) {
      const offsetX = event.clientX - this.startX;
      const offsetY = event.clientY - this.startY;
      this.notification.style.left = this.offsetX + offsetX + 'px';
      this.notification.style.top = this.offsetY + offsetY + 'px';
    },
    stopDrag() {
      document.removeEventListener('mousemove', this.dragging);
      document.removeEventListener('mouseup', this.stopDrag);
    },

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值