element vue 点击一边拖拽改变宽度 解决拖动会选中文字的问题

实现效果:
在这里插入图片描述
实现代码:

//最外边的这个是放表格容器的div
<div @mousemove="shrinkMove" @mouseup="shrinkUp">
//划重点:id = "resizetable"--用这个id标识修改哪个容器的宽度
	<div id = "resizetable">
	左边表格的div
	</div>
	<div @mousedown="shrinkDown">
	图上拖动条的div
	</div>
</div>
//只写了重要代码
data() {
    return {
	isShrink: false, // 控制是否改变宽度
	}
}
methods: {
shrinkMove(e) {
      document.onselectstart = function() { return false } // 解决拖动会选中文字的问题
      if (this.isShrink) {
      //e.screenX,鼠标的x坐标,设置最小最大宽度以及误差值根据项目需要决定
        const wid = e.screenX - 25 // 误差值
        //划重点:id = "resizetable"--用这个id标识修改哪个容器的宽度
        var resizetable = document.getElementById('resizetable')
        if (wid < 520) {
          resizetable.style.width = 520 + 'px' //最小值
        } else if (this.miningAreaMap.size === 0 && wid > 690) {
          resizetable.style.width = 690 + 'px' //正常时最大值
        } else if (this.miningAreaMap.size > 0 && wid > 820) {
          resizetable.style.width = 820 + 'px' //数据多一列时可拖动的最大值
        } else {
          resizetable.style.width = wid + 'px'  //拖动时的宽度
        }
      }
    },
    shrinkDown(e) {
      document.onselectstart = function() { return false } // 解决拖动会选中文字的问题
      this.isShrink = true
    },
    shrinkUp(e) {
      document.onselectstart = function() { return false } // 解决拖动会选中文字的问题
      this.isShrink = false
    },
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值