el-drawer宽度课拉伸

在使用el-drawer过程中我们想要对抽屉进行拉伸, 方便实现产品经理的需求, 可以写一个自定义命令嵌入到vue指令中, 可以全局引用也可以按需引用.

js代码 (前提是引入了vue)

Vue.directive('drawerDrag', {
  bind(el, binding, vnode, oldVnode) {
    const minWidth = 300
    const dragDom = el.querySelector('.el-drawer')
    // const dragDom1 = el.querySelector('.el-drawer__container')
    // const dragDom2 = el.querySelector('.el-drawer__wrapper')
    // dragDom.style.overflow = 'auto'

    const resizeElL = document.createElement('div')
    const img = new Image(24, 38)
    // img.src = require('@/assets/img/apk.png')
    // dragDom.appendChild(img)
    dragDom.appendChild(resizeElL)
    resizeElL.style.cursor = 'w-resize'
    resizeElL.style.position = 'absolute'
    resizeElL.style.height = '100%'
    resizeElL.style.width = '30px'
    resizeElL.style.left = '0px'
    resizeElL.style.top = '0px'
    img.style.position = 'absolute'
    img.style.left = '-12px'
    img.style.top = '50%'

    resizeElL.onmousedown = (e) => {
      const elW = dragDom.clientWidth
      const EloffsetLeft = dragDom.offsetLeft
      console.log(elW, EloffsetLeft)
      const clientX = e.clientX
      document.onmousemove = function (e) {
        // console.log(e.clientX,dragDom.offsetLeft,333333)
        e.preventDefault()
        // 左侧鼠标拖拽位置
        if (clientX > EloffsetLeft && clientX < EloffsetLeft + 10) {
          // 往左拖拽
          if (clientX > e.clientX) {
            console.log(e.clientX)
            dragDom.style.width = elW + (clientX - e.clientX) + 'px'
            console.log(dragDom.style.width)
          }
          // 往右拖拽
          console.log(clientX, e.clientX)
          if (clientX < e.clientX) {
            console.log(dragDom.clientWidth, 66666)
            if (dragDom.clientWidth >= minWidth) {
              console.log(elW, e.clientX, clientX)
              dragDom.style.width = elW - (e.clientX - clientX) + 'px'
            }
          }
        }
      }
      // 拉伸结束
      document.onmouseup = function (e) {
        document.onmousemove = null
        document.onmouseup = null
      }
    }
  }
})

 页面代码使用: 在 el-drawer 标签内使用指令 v-drawerDrag

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值