vue侧边导航页面效果
左边是侧边导航的效果,右边是展示内容的小组件。
展示动图如下:
点击左边的导航,右边展示相对应的区域;
滑动右边,左边也会同步。
左侧的导航可以下拉,点击右边内容区域左边的导航不会上下移动。
引入了jquery 库。
关键代码:
mounted(){var vm = this;$('#content').scroll(function(e){let scrollTop = e.target.scrollTop;let index = scrollTop/221; //221 是右边每个item项的高度console.log(index)vm.selectedIndex = Math.floor(index/0.77); // 0.77 数字大小自己决定 ,试验几次就能得到自己想要的效果。})},
子组件
完整代码
<template><div class="container"><div class="flex-wrap"><div class="leftnav-wrap"><ul class="nav-list"><li :class="{'nav-li':true,'orange':isActive(index)}" v-for="(item,index) in navdetail" @click="activeItem(index)" :index="index">{{item.text}}</li></ul></div><!-- 具体展示文字区域 --><div id="content" ref="content"><ul class="goods-detail"><li class="goods-li" v-for="(item,index) in navdetail"><img :src="item.imgurl"><h1><a :name="item.text">{{item.text}}</a></h1></li></ul></div></div></div></template><script>export default{data(){return{selectedIndex:''}},mounted(){var vm = this;$('#content').scroll(function(e){let scrollTop = e.target.scrollTop;let index = scrollTop/221;console.log(index)vm.selectedIndex = Math.floor(index);})},props:['navdetail'],methods:{//获取点击的索引值activeItem(index){this.selectedIndex = index;let scrollTop = index *221;this.$refs.content.scrollTop = scrollTop;},//等于索引值的元素置为激活状态isActive(index){if(index == this.selectedIndex){return true}else{return false}},}}
</script>
<style>
html,body{overflow-x: hidden;
}ul{list-style: none;padding: 0;margin: 0
}
a{text-decoration: none;
}
#content{overflow-y: auto;width: calc(100% - 100px);height: 100%;}
.leftnav-wrap{width: 100px;overflow-y:auto;
}
.nav-list{width: 100px;margin-bottom:60px;}.orange{border-bottom:2px solid orange!important;
}
.nav-li{border-bottom: 2px solid #ccc;height: 120px;line-height: 120px;color: #333;}
::-webkit-scrollbar{display: none;
}
.flex-wrap{display: flex;position: fixed;width: 100%;height: 100%;
}
.goods-detail{margin-bottom:100px;}
.goods-li img{width: 160px;
}
</style>
父组件的代码:
<template><div><div class="wrap"><leftnav :navdata="navdata" :navdetail="navdetail"></leftnav></div></div>
</template>
<script>
import leftnav from '@/components/leftnav.vue'export default{data(){return{navdata:[{name:'女装'},{name:'男装'},{name:'日化'},{name:'生活用品'},{name:'鞋子'},{name:'iphone11'},{name:'iphone12'},{name:'华为'},{name:'一加'},{name:'锤子'},{name:'小米'},{name:'一加'},{name:'锤子'},{name:'小米'}],navdetail:[{text:'ysl',imgurl:'https://img13.360buyimg.com/babel/s320x320_jfs/t1/189523/38/7470/326286/60c1bc7aE1f9209af/f32040006b5beb82.jpg'},{text:'纪梵希',imgurl:'https://img13.360buyimg.com/babel/s320x320_jfs/t1/6832/37/15374/465669/60c2ba79Ec7964188/60ff7d7a4b95f1f2.jpg'},{text:'iphone11',imgurl:'https://img10.360buyimg.com/n7/jfs/t1/181147/16/6648/192505/60b4db17E96972480/b658977c7b38fb68.jpg'},{text:'iphone12',imgurl:'https://img10.360buyimg.com/n7/jfs/t1/189891/24/7842/154787/60c421f8E4ac1a09c/cf81506219325555.jpg'},{text:'vivo',imgurl:'https://img13.360buyimg.com/n2/jfs/t1/172981/8/14398/85423/60c332b5E6b9c3a58/28250f4f14662473.jpg'},{text:'华为手机',imgurl:'https://img14.360buyimg.com/n7/jfs/t1/174404/9/13484/206724/60c1d475E3d643be5/9411b9c3d17a60ca.jpg'}]}},components:{leftnav},methods:{}}
</script>
vue侧边导航页面效果相关推荐
- android 气球菜单,jQuery实现气球弹出框式的侧边导航菜单效果
本文实例讲述了jQuery实现气球弹出框式的侧边导航菜单效果.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的气球弹出框式的侧边导航菜单,预览效果时左下角会提示错误,而且看不到效果,刷 ...
- 状态输出导航栏html,Vue实现导航栏效果(选中状态刷新不消失)_百厌_前端开发者...
用 1.首先把这些小图片放到src/assets路径下面(自动base64编码) 2.在data()里边定义一个选中对应的变量isSelect,和循环遍历的数组,数组下面放图标对应的文字,和选中,未选 ...
- jQuery实现侧边导航手风琴效果
侧导航的手风琴效果是指,点击含子层导航的父导航时,使原本隐藏的子导航显示,再次点击,子层导航又恢复隐藏,同时,同一时间只有一个父导航的子导航能够显示 $("#sidenav > li& ...
- 【机器学习实践】Jupyter Notebook安装 侧边导航栏功能 操作及其他常用扩展功能介绍...
安装过程: 1. 首先我们引入jupyter_contrib_nbextension这个第三方库. 2. 在Anaconda Promot中输入命令: pip install jupyter_con ...
- html 下拉到一定位置,浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定。这种效果怎么实现呢...
1.浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定.页面向上滚动到一定位置继续滚动时,侧边导航保持在原来位置.这种效果怎么实现呢 2.. ...
- Vue实现侧边导航栏于Tab页关联
技术栈 侧边栏用 Antd tab使用element 效果 <template><div class="main-card"><el-row>& ...
- Vue实现导航栏吸顶效果
<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...
- vue + elementui 实现动态侧边导航栏
vue + elementui 实现动态侧边导航栏 引言 router 文件夹 创建 layout 文件夹 components 创建 SubMenu 文件夹封装动态侧边栏 vuex 中根据权限动态获 ...
- php侧边栏导航效果,原生js实现电商侧边导航效果
知识要点 实现原理: 1.点击楼层跳相应楼层,用的是锚点定位 电梯:2F 个护家清 列表title: 这个没什么好说的 2.当点击楼层跳到相应楼层时,该楼层高亮显示 我们的脚本主要就是实现这个功能. ...
最新文章
- 面试:说说参数验证 @Validated 和 @Valid 的区别?
- C++十进制转二进制
- Jenkins 插件管理与系统设置
- c语言中table函数,Excel的TABLE函数是什么意思?
- 发达国家餐厅的一张罚单 让我们中国人汗颜
- [第二届构建之法论坛] 预培训文档(C++版)
- elementui可编辑单元格_ElementUI table组件实现点击单元格可编辑
- python 中关于无法导入自己写的类。解决方法
- arcpy判断图层是否存在的方法
- haswell架构_一个月拥有Intel Haswell原型
- 阿里云ACA课程之阿里云简介
- 34岁程序员面试谈薪资被砍5K,网友:这么降不如在家睡觉
- 川普上台,VR游戏开发者也来恶搞蹭热度
- 一些关于SLG手游的想法
- 声网一起 KTV 功能初体验 | 掘金技术征文
- python编写一个程序、输入一个数判断其是偶数还是奇数_编写一个程序,判断用户输入的整数是偶数还是奇数。 (7.0分)_学小易找答案...
- 官宣!辛保安任国家电网有限公司董事长、党组书记
- IE浏览器JSON未定义
- 梦幻西游游戏官网服务器状态,梦幻西游:凌晨4点了,这个游戏究竟还有几个服务器不是鬼区?...
- games java mtech_JEIL MTECH打号机打码机