本文实例为大家分享了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;
}

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

vue实现拖动调整左右两侧容器大小的更多相关文章

  1. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. HTML5页面无缝闪开的问题及解决方案

    这篇文章主要介绍了HTML5页面无缝闪开方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. ios – 将容器带到视图前方

    我怎样才能解决这个问题?

  4. ios – 如何使用XCode 6.4下载和替换AppGroup容器

    我知道如何使用XCode6的Devices窗口下载和替换特定iOS应用程序的文件系统容器.但是对于我正在开发的应用程序,我需要能够下载和替换共享的AppGroup容器以进行调试.这将使我能够模拟AppGroup文件夹内容中的情况以进行测试.任何人都可以告诉我如何做到这一点?

  5. ios – 在UITableView上移动UIView – 触摸顶部UIView仍然选择表行

    =======用一些代码编辑:这是我在容器B中所做的代码.这是B帧的一个非常直接的动画.self.view是ContainerB的UIView.所有视图都在屏幕上通过故事板.其他容器是B的子视图.请让我知道你想看到的其他代码.解决方法嗯……不确定这是否适用于您的情况,但尝试在容纳所有其他容器的更大容器中管理您的动画.我的意思是,创建一个包含A,B,O及其子视图的ContainerZ,并尝试从Z中设置B的位置动画,检查B是否在A前面.

  6. ios – 与容器视图通信的最佳实践是什么?

    我最近经常使用容器VC,我一直想知道主Vc和容器VC之间的最佳通信方式是什么.现在我正在使用通知,但我宁愿使用更好的东西.如何获取指向容器VC的指针,以便至少可以使用委托?

  7. ios – 编程嵌入UIViewController?

    我有一个带有一个容器视图的UIViewController的Storyboard设置,以便我可以在其中嵌入另一个UIViewController.在某种情况下,我需要更改嵌入式视图控制器.在我的故事板中,我的容器视图不能有两个区段.这导致我以编程方式进行.我的容器视图在我的故事板,没有连接的嵌入.现在从这一点开始,我如何以编程方式嵌入我所选择的UIViewController对象?

  8. ios – 使用Swift访问非默认的Cloudkit容器

    我有一个IOS8应用程序,它成功地将记录写入其默认的Cloudkit容器.现在我希望在OSX下的不同应用程序中读取和处理这些记录.我已经设置了具有iCloud访问权限的新应用程序,并选中了“指定自定义容器”选项.这已成功找到原始应用程序和我的容器没有错误要在Capabilities界面上修复.我的所有搜索都告诉我“同一个开发人员签署的两个应用程序可能共享同一个容器”但我找不到的任何教程文档都告诉我

  9. ios – 嵌入在容器视图中的UINavigationController,显示大小错误的表视图控制器

    我正在尝试找到解决这种情况的方法:我有一个UITabBarController它的一个segue连接到一个容器视图控制器(BannerViewController),我用来嵌入一个UINavigationController,导航控制器推送其他容器视图控制器(EventListContainerviewController),每个包含一个tableview控制器.这是我的故事板上的一个屏幕问题是最

  10. 在ios 6中,如何在View控制器中使用“容器视图”对象和嵌入在其中的表视图控制器之间使用传递数据?

    我有一个带标签和文本字段的视图控制器.我还添加了一个容器视图,它指向另一个具有一个部分和3行的表视图控制器,基本上是静态表视图.我无法找到任何文档/示例,告诉您如何在容器视图中嵌入容器视图和表视图容器的View控制器之间传递数据.我想要双方沟通?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部