用Vue如何制作伸缩菜单,主要代码是什么
Admin 2022-08-06 群英技术资讯 1057 次浏览
这篇文章主要介绍“用Vue如何制作伸缩菜单,主要代码是什么”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“用Vue如何制作伸缩菜单,主要代码是什么”文章能帮助大家解决问题。先看效果:
点击图片按钮可调整菜单宽度

伸缩后

页面结构一共分为三部分,加上一个伸缩按钮,在你的项目对应的部分都加上class名。
我这里定义的分别是box、left、mid、resize(按钮类名)
html

页面结构划分完成之后,完善一下样式(直接复制,菜单类名换成你的)
/*拖拽区div样式*/
.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()
},
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
用React怎样做导入导出Excel的功能?在实际的项目中,一些需要需要我们做导入导出Excel的功能,那么具体该如何实现呢?接下来我们直接看用React实现导入导出Excel的代码,感兴趣的朋友可以参考。
通过原型链继承原型上的属性和方法,盗用构造函数继承实例属性。这样不仅可以将方法定义为原型,还可以使每个实例都有自己的属性。
在Excel中,我们可以通过拖拉表格来实现自动计算表格的内容,那么我们做网页版的Excel表格,这个功能要如何实现呢?接下来小编就给大家分享用JavaScript实现拖拉表格自动计算内容的功能。
这篇文章主要介绍了javascript中layim之查找好友查找群组,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
在React中,你可以创建不同的组件来封装各种你需要的行为。然后还可以根据应用的状态变化只渲染其中的一部分。React 中的条件渲染和JavaScript中的一致,使用JavaScript操作符if或条件运算符来创建表示当前状态的元素,然后让React根据它们来更新UI
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008