千家信息网

vue.js怎么实现可拖拽菜单

发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,这篇文章主要介绍vue.js怎么实现可拖拽菜单,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vue.js实现可拖拽菜单的方法:【import "@/assets/second.
千家信息网最后更新 2025年11月13日vue.js怎么实现可拖拽菜单

这篇文章主要介绍vue.js怎么实现可拖拽菜单,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

vue.js实现可拖拽菜单的方法:【import "@/assets/second.css";export default {name: "HelloWorld",directives: {move(el, bindings) {...】。

本文操作环境:windows10系统、vue.js 2.9、thinkpad t480电脑。

在给出正式的实现代码之前,我们要先来了解一点相关知识点。

知识点一:

vue中的自定义指令 directive

// 注册一个全局自定义指令 `v-focus`Vue.directive('focus', {  // 当被绑定的元素插入到 DOM 中时……  inserted: function (el) {    // 聚焦元素    el.focus()  }})// 注册局部自定义指令directives: {  focus: {    // 指令的定义    inserted: function (el) {      el.focus()    }  }}// 在此我们用的是局部

知识点二:js

       onmousedown                        :鼠标按下事件        clientX                             :时鼠标指针相对于浏览器页面(或客户区)的水平坐标    document.getElementById :通过id获取节点    offsetWidth                             :获取的是盒子最终的宽    onmousemove                             :鼠标移动事件     onmouseup                               :鼠标释放事件

效果图:

页面代码:

     

样式代码:

.myBox{    width: 100%;;    height: 700px;    border: 1px solid red;    display: flex;}#silderLeft{    width: 250px;    height: 100%;        background-color: #999;    position: relative;    /* overflow-y: auto; */}/* 拖动条 */.moveBtn{    height: 100%;    width: 10px;    /* opacity: 0; */    position: absolute;    right: 0px;    top: 0;    cursor: col-resize;    background-color: yellow;}.menuList{    background-color: yellowgreen;    /* height: 120%; */}.silderRight{    height: 100%;    background-color: sandybrown;    flex: 1;}

可以修改自定义命令,设置一个最小拖拽宽度

directives: {    move(el, bindings) {      el.onmousedown = function(e) {        var init = e.clientX;        console.log('init',init);        var parent = document.getElementById("sidebar");        var initWidth = parent.offsetWidth;        _document.onmousemove = function(e) {          var end = e.clientX;          // end - init表示鼠标移动的距离          // end为鼠标移动的宽度,可用于设置最小宽度          if(end > 250){            var newWidth = end - init + initWidth;            parent.style.width = newWidth + "px";          }else{            end = 250;            // 最小宽度242            parent.style.width = 242 + "px";          }        };        _document.onmouseup = function() {          _document.onmousemove = _document.onmouseup = null;        };      };    }  }

以上是"vue.js怎么实现可拖拽菜单"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

鼠标 菜单 宽度 指令 知识 最小 事件 代码 知识点 移动 元素 内容 局部 篇文章 页面 价值 全局 兴趣 右边 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术试题一二章 服务器停止响应别人打得开 浙里贷服务器异常 和数据库连接的是什么层 上海威力网络技术厂家现货 实习周记软件开发公司实习 魏春燕北京归源易生软件开发 新华互联网科技拜年 dns服务器启动了但未响应 拍图识物软件开发思路 我的世界服务器4g运行内存够吗 git 建立服务器端 长沙岐黄软件开发公司 怎样从表1中提取数据库 内蒙古杰华网络技术有限公司 数据库未收录的期刊好吗 工业和信息化技术人才数据库 未转变者大逃杀服务器叫什么 wps怎么建立数据库表 嵌入式软件开发项目教程 网络安全信息迷雾 网络安全系统市场规模 互联网软件开发行业 数据库自然连接列名 巅峰战舰升级服务器 电信网络技术的发展 网络安全法泄露信息 软件开发外包合同 百度网盘 大唐无双哪个服务器人气最高 web服务器有哪些常用的软件
0