vue3可拖拽左侧区

<template>
   <div class="fold-left-box">
     <div class="fold-left-box-left" :style="{ width: asideWidth + 'px' }" v-show="asideWidth > 0">
       left
     </div>
     <div
       class="fold-left-box-line"
       :style="{ cursor: asideWidth === 0 ? '' : 'col-resize' }"
       ref="drag"
     >
     </div>
     <div class="fold-left-box-main">main</div>
   </div>
 </template>
 
 <script setup>
 import { ref, onMounted } from 'vue'
 onMounted(() => {
   bindDrop()
 })
 function foldLeft() {
   asideWidth.value = asideWidth.value === 0 ? 250 : 0
 }
 const drag = ref(null)
 const asideWidth = ref(300)
 function bindDrop() {
   drag.value.onmousedown = function () {
     document.onmousemove = function (e) {
       asideWidth.value = asideWidth.value + e.movementX
       if (asideWidth.value < 20) {
         document.onmouseup()
         asideWidth.value = 0
       }
     }
     document.onmouseup = function () {
       document.onmousemove = null
       document.onmouseup = null
     }
     return false
   }
 }
 </script>
 <style scoped>
 .fold-left-box {
   height: 500px;
   overflow: hidden;
   display: flex;
 }
 .fold-left-box-left {
   height: 100%;
   overflow: hidden;
 }
 .fold-left-box-line {
   width: 4px;
   height: 100%;
   position: relative;
   border-left: 1px solid #e6e6e6;
 }
 .fold-left-box-main {
   height: 100%;
   flex: 1;
   padding-left: 12px;
   overflow: hidden;
 }
 </style>
 
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值