vue实现拖动调整左右两侧容器大小

 更新时间:2022年03月22日 09:13:37   作者:HerayChen  
这篇文章主要为大家详细介绍了vue实现拖动调整左右两侧容器大小,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了vue实现拖动调整左右两侧容器大小的具体代码,供大家参考,具体内容如下

页面布局

<template>
    <a-layout class="width-auto" id="product">
        <div class="content">
            <div id="left" class="left">
            左侧
            </div>
            <div id="line" class="resize-line"></div>
            <div id="right" class="right">
            右侧
            </div>
        </div>
   </a-layout>         
 </template> 

拖拽方法

drapContent() {
    // 获取 左边区域 的 宽度
    let left = document.getElementById('left');
    // 获取 移动区域 的 宽度
    let line = document.getElementById('line');
    // 获取 右边区域 的 宽度
    let right = document.getElementById('right');
    // 移动区域鼠标移入事件
    line.onmousedown = function(e) {
        // 移动的距离
        let lineLeft = e.clientX;
        document.onmousemove = function(e) {
            // 移动的位置 (侧边栏的宽度 + 移动的宽度)
            let diffVal = 276 + (e.clientX -lineLeft);
            // 移动区间的范围 [276, 740]
            if(diffVal >= 276 && diffVal <= 840) {
                // 移动区域距离左边的距离
                line.style.left = diffVal+'px';
                // 左边缩放的宽度
                left.style.width = diffVal +'px';
                // 右边改变后的宽度 (改变后的宽度要加上移动区域的宽度)
                right.style.width = document.getElementById('product').clientWidth - (diffVal + 16) +'px';
            }
        }
        document.onmouseup = function() {
            document.onmousemove = null;
            document.onmouseup = null;
        }
    }
}

在vue里面使用记得将方法在mounted中调用一下:

样式

.content {
    display: flex;
    width: 100%;
    height: 100%;
}
.left {
    width: 260px;
    height: 100%;
}
.resize-line {
    /*鼠标移入显示左右箭头*/
    cursor: ew-resize;
    width: 16px;
    min-width: 16px;
    max-width: 16px;
    background-color: transparent;
}
.right {
    width: calc(100% - 276px);
    max-width: calc(100% - 276px);
    user-select: none;
}
.ant-layout {
    height: calc(100vh - 181px);
}
:deep(.top-search .ant-form-item label) {
    min-width: 72px;
}
:deep(.ant-layout-sider) {
    flex: 0 0 100%;
     max-width: 100% !important;
     min-width: 260px !important;
    width: 100% !important;
    user-select: none;
}
.width-auto .tree-layout-sider {
    height: calc(100vh - 181px);
    overflow-x: hidden;
    overflow-y: auto;
    padding-left: 8px !important;
    padding-right: 0 !important;
}

.width-auto li li .ant-tree-title {
    width: 100% !important;
}

:deep(.ant-tree.ant-tree-block-node li .ant-tree-node-content-wrapper) {
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • webpack如何将vue3单页面应用改造成多页面应用

    webpack如何将vue3单页面应用改造成多页面应用

    这篇文章主要介绍了webpack如何将vue3单页面应用改造成多页面应用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • Vue-axios-post数据后端接不到问题解决

    Vue-axios-post数据后端接不到问题解决

    这篇文章主要介绍了Vue-axios-post数据后端接不到问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Vue.js如何利用v-for循环生成动态标签

    Vue.js如何利用v-for循环生成动态标签

    这篇文章主要给大家介绍了关于Vue.js如何利用v-for循环生成动态标签的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • vue+element-ui实现头部导航栏组件

    vue+element-ui实现头部导航栏组件

    这篇文章主要为大家详细介绍了vue+element-ui实现头部导航栏组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • vue3中路由写法与传参方式的超详细指南

    vue3中路由写法与传参方式的超详细指南

    Vue Router是Vue.js官方的路由管理器,它主要用于单页面应用程序中,帮助解决页面导航、组件复用等问题,下面我们就来看看vue3中路由写法与传参方式吧
    2024-11-11
  • 实现shallowReadonly和isProxy功能示例详解

    实现shallowReadonly和isProxy功能示例详解

    这篇文章主要为大家介绍了实现shallowReadonly和isProxy功能示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 详解Vue中如何避免滥用watch

    详解Vue中如何避免滥用watch

    这篇文章主要为大家详细介绍了Vue中滥用watch带来的问题以及如何解决,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • 使用vue项目配置多个代理的注意点

    使用vue项目配置多个代理的注意点

    这篇文章主要介绍了使用vue项目配置多个代理的注意点,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • webpack vue项目开发环境局域网访问方法

    webpack vue项目开发环境局域网访问方法

    下面小编就为大家分享一篇webpack vue项目开发环境局域网访问方法,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧
    2018-03-03
  • vuex实现像调用模板方法一样调用Mutations方法

    vuex实现像调用模板方法一样调用Mutations方法

    今天小编就为大家分享一篇vuex实现像调用模板方法一样调用Mutations方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11

最新评论