开发指南100-左右区域可拖动

       平台上大量这样的界面:左侧机构树,右侧详细情况列表。要求两个区域中间有分割条,点击分割条可以左右拖动变动。平台标准实现方法如下:

      页面元素:

       <div class="treeContainer" ref="treeContainer"></div>    --这是左侧区域

       <el-divider ref="divider" direction="vertical" @mousedown="startDrag"></el-divider>  --分割条

       <div class="list" ref="list"></div>  --这是右侧区域

       所需变量:

            // 处理拖动所属变量
            isResizing: false,  //是否拖动状态
            startX: 0,         //起点坐标
            startWidth: 0,     //左侧宽度 

        函数处理逻辑:

        startDrag(e) {
            this.isResizing = true;
            this.startX = e.clientX;
            this.startWidth = this.$refs.treeContainer.offsetWidth;
            document.addEventListener('mousemove', this.onMouseMove);
            document.addEventListener('mouseup', this.stopResize);
        },

              onMouseMove(e) {
            if (this.isResizing) {
                const dx = e.clientX - this.startX;
                const newWidth = this.startWidth + dx;
                    this.$refs.treeContainer.style.width = `${newWidth}px`;
                    this.$refs.list.style.width = `calc(100% - ${newWidth}px - 5px)`;
            }
        },
        stopResize() {
            this.isResizing = false;
            document.removeEventListener('mousemove', this.onMouseMove);
            document.removeEventListener('mouseup', this.stopResize);
        },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道不孤,众行致远

请给我加油

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值