返回顶部
首页 > 资讯 > 前端开发 > VUE >vue实现伸缩菜单功能
  • 722
分享到

vue实现伸缩菜单功能

2024-04-02 19:04:59 722人浏览 安东尼
摘要

本文实例为大家分享了Vue实现伸缩菜单的具体代码,供大家参考,具体内容如下 先看效果: 点击图片按钮可调整菜单宽度 伸缩后 页面结构一共分为三部分,加上一个伸缩按钮,在你的项目对

本文实例为大家分享了Vue实现伸缩菜单的具体代码,供大家参考,具体内容如下

先看效果:

点击图片按钮可调整菜单宽度

伸缩后

页面结构一共分为三部分,加上一个伸缩按钮,在你的项目对应的部分都加上class名。

我这里定义的分别是box、left、mid、resize(按钮类名)

html

页面结构划分完成之后,完善一下样式(直接复制,菜单类名换成你的)


.resize {
    cursor: col-resize;
    position: relative;
    // top: 45%;
    top: 400px;
    background-color: #d6d6d6;
    border-radius: 5px;
    margin-top: -10px;
    width: 10px;
    height: 50px;
    background-size: cover;
    background-position: center;
    font-size: 32px;
    color: white;
}

.resize:hover {
    color: #444444;
}
//左侧菜单设置百分比宽度,方便拖拽自适应
.main_menu {
    width:22%; 
    height: 100%;
    background: #BF334E!important;
    box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.11);
}

methods里面的拖拽函数:

// 拖拽事件
draGControllerDiv() {
            var resize = document.getElementsByClassName('resize')
            var left = document.getElementsByClassName('left')
            var mid = document.getElementsByClassName('mid')
            var box = document.getElementsByClassName('box')
            for (let i = 0; i < resize.length; i++) {
                // 鼠标按下事件
                resize[i].onmousedown = function (e) {
                    //颜色改变提醒
                    resize[i].style.background = '#818181'
                    var startX = e.clientX
                    resize[i].left = resize[i].offsetLeft
                    // 鼠标拖动事件
                    document.onmousemove = function (e) {
                        console.log('鼠标按下')
                        var endX = e.clientX
                        var moveLen = resize[i].left + (endX - startX - 270) // (endx-startx)=移动的距离。resize[i].left+移动的距离=左边区域最后的宽度
                        var maxT = box[i].clientWidth - resize[i].offsetWidth - 270// 容器宽度 - 左边区域的宽度 = 右边区域的宽度
                        console.log(moveLen,maxT)
                        if (moveLen < 32) moveLen = 270 // 左边区域的最小宽度为32px
                        if (moveLen > maxT - 150) moveLen = maxT - 650 //右边区域最小宽度为150px
                        resize[i].style.left = moveLen // 设置左侧区域的宽度
                        for (let j = 0; j < left.length; j++) {
                            console.log( left[j].style)
                            left[j].style.width = moveLen + 'px'
                            mid[j].style.width = box[i].clientWidth - moveLen - 10 + 'px'
                        }
                    }
                    // 鼠标松开事件
                    document.onmouseup = function (evt) {
                        console.log('鼠标收起')
                        //颜色恢复
                        resize[i].style.background = '#d6d6d6'
                        document.onmousemove = null
                        document.onmouseup = null
                        resize[i].releaseCapture && resize[i].releaseCapture() //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
                    }
                    resize[i].setCapture && resize[i].setCapture() //该函数在属于当前线程的指定窗口里设置鼠标捕获
                    return false
                }
            }
        },

mounted里面调用:

mounted() {
         this.dragControllerDiv()
    },

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

--结束END--

本文标题: vue实现伸缩菜单功能

本文链接: https://lsjlt.com/news/34262.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue实现伸缩菜单功能
    本文实例为大家分享了vue实现伸缩菜单的具体代码,供大家参考,具体内容如下 先看效果: 点击图片按钮可调整菜单宽度 伸缩后 页面结构一共分为三部分,加上一个伸缩按钮,在你的项目对...
    99+
    2024-04-02
  • JavaScript实现伸缩二级菜单
    JavaScript实现伸缩二级菜单的具体代码,供大家参考,具体内容如下 伸缩二级菜单: 案例说明:效果图如下,一次只能打开一个,打开后,+ 号变 - 。 HTML 代码 &l...
    99+
    2024-04-02
  • vue3中的伸缩菜单组件
    目录vue3伸缩菜单组件效果图总结vue3伸缩菜单组件 最近一直在学习分装组件,学到了一个伸缩菜单栏组件,浅浅的记录一下,想要封装菜单的,代码可以直接拿去用,稍作修改即可! 效果图 ...
    99+
    2023-01-14
    vue3伸缩菜单组件 vue3伸缩菜单 vue3组件
  • Vue el-table实现右键菜单功能
    本文实例为大家分享了Vue el-table实现右键菜单功能的具体代码,供大家参考,具体内容如下 实现的效果如下: 1.el-table和右键菜单视图代码 @row-context...
    99+
    2024-04-02
  • Android实现伸缩弹力分布菜单效果的示例
    这两天无意间看到一园友的博文实现Path2.0中绚丽的的旋转菜单,感觉效果不错,但是发现作者没有处理线程安全的问题,所以在这里我修正了下,并且改善下部分功能。今天发布这篇文章的...
    99+
    2022-06-06
    菜单 示例 分布 Android
  • vue3伸缩菜单组件怎么使用
    本篇内容介绍了“vue3伸缩菜单组件怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果图在components下面创建一个conta...
    99+
    2023-07-05
  • Vue el-table怎么实现右键菜单功能
    这篇文章主要介绍了Vue el-table怎么实现右键菜单功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue el-table怎么实现右键菜单功能文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-29
  • Vue实现菜单功能的代码怎么写
    本篇内容主要讲解“Vue实现菜单功能的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue实现菜单功能的代码怎么写”吧!菜单功能实现菜单接口封装菜单管理是一个对菜单树结构的增删改查操作...
    99+
    2023-06-29
  • Vue el-menu 左侧菜单导航功能的实现
    目录引言一级菜单实现最简单的一级菜单设置菜单背景颜色和文字颜色设置选中后菜单文字颜色在菜单中加入图标二级菜单实现二级菜单修改分析【其实很简单】:三级菜单实现三级菜单实现点击菜单跳转小...
    99+
    2024-04-02
  • CSS3怎么实现菜单功能
    这篇文章主要介绍“CSS3怎么实现菜单功能”,在日常操作中,相信很多人在CSS3怎么实现菜单功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS3怎么实现菜单功能”的疑惑...
    99+
    2024-04-02
  • vue列表单项展开收缩功能怎么实现
    这篇文章主要讲解了“vue列表单项展开收缩功能怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue列表单项展开收缩功能怎么实现”吧!代码逻辑###template部分:已去除与本文不...
    99+
    2023-07-04
  • js实现右键菜单栏功能
    本文实例为大家分享了js实现右键菜单栏的具体代码,供大家参考,具体内容如下 1. 效果图: 鼠标悬浮: 2. 代码 (1)html <div class="leftDiv"...
    99+
    2024-04-02
  • Vue+ElementUI实现权限管理系统之菜单功能实现代码
    目录菜单功能实现菜单接口封装菜单管理界面测试效果源码下载菜单功能实现 菜单接口封装 菜单管理是一个对菜单树结构的增删改查操作。 提供一个菜单查询接口,查询整颗菜单树形结构。 http...
    99+
    2024-04-02
  • JavaScript如何实现下拉菜单功能
    这篇文章主要介绍了JavaScript如何实现下拉菜单功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体代码如下所示:<!doct...
    99+
    2024-04-02
  • EasyUI如何实现树形功能菜单
    这篇文章给大家分享的是有关EasyUI如何实现树形功能菜单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。页面展示截图如下:为了实现以上效果,在开始前必须先将环境配置一下。第一步:...
    99+
    2024-04-02
  • 实现一个三级菜单小功能
    记录下一下 1 #!/usr/bin/env python3 2 ''' 3 需求:三级菜单 4 三级菜单,依次进入子菜单 5 ''' 6 City = { 7 '北京':{ 8 ...
    99+
    2023-01-30
    菜单 功能
  • vue实现放大缩小拖拽功能
    本文实例为大家分享了vue实现放大缩小拖拽功能的具体代码,供大家参考,具体内容如下 点击放大至全屏 再次点击缩小至原始  这个弹框是基于element dialog的基础上...
    99+
    2024-04-02
  • vue实现表单验证功能
    本篇主要讲述如何基于NUXT的validate方法实现表单的验证。 将验证方法封装后,使用的时候只需像:rules="filter_rules({required:true,type...
    99+
    2024-04-02
  • vue实现简单分页功能
    本文实例为大家分享了vue实现简单的分页功能的具体代码,供大家参考,具体内容如下 <template> <div id="pages">     <di...
    99+
    2024-04-02
  • Android简单实现菜单拖拽排序的功能
    目录1、效果2、简介3、功能拆解4、功能实现4.1、实现接口4.1.1、getMovementFlags4.1.2、onMove4.1.3、onSwiped4.2、绑定Recycle...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作