div元素鼠标按下可拖动

div元素鼠标按下拖动效果

html部分

 <div
    @mousedown="getDown($event)"
    @mouseup="getUp($event)"
    id="RWXX"
  >

移动方法:

   getDown(e) {
      let that = this
      //鼠标按下事件
      let box = document.getElementById('RWXX')// 对应div id
      let x = e.pageX / that.scale - box.offsetLeft
      let y = e.pageY / that.scale - box.offsetTop
      document.onmousemove = function(ev) {
        box.style.left = ev.pageX / that.scale - x + 'px'
        box.style.top = ev.pageY / that.scale - y + 'px'
        document.onmouseup = function(ev) {
          document.onmousemove = null
          document.onmouseup = null
        }
      }
    },
    
    getUp() {
      document.onmouseup = function(ev) {
        document.onmousemove = null
        document.onmouseup = null
      }
    },

PS:不同的显示比例不同 浏览器缩放也会有所影响,获取当前页面的缩放比例,使拖动的时候不论是什么比例显示,都可以丝滑拖动

 let x = e.pageX / that.scale - box.offsetLeft// that.scale  是页面缩放比例

获取页面缩放比例方法:

setScreen() {
      let visibleWidth = window.innerWidth
      let visibleHeight = window.innerHeight
      var widthPercentage = (1.0 * visibleWidth) / 1920
      var heightPercentage = (1.0 * visibleHeight) / 1080 // 1920*1080 屏幕的分辨率
      this.scale = Math.min(widthPercentage, heightPercentage) // this.scale屏幕的缩放系数
      this.$store.commit('setScale', this.scale)// 存放在vuex  便于其他页面获取
    },
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值