左边是侧边导航的效果,右边是展示内容的小组件。

展示动图如下:

点击左边的导航,右边展示相对应的区域;
滑动右边,左边也会同步。
左侧的导航可以下拉,点击右边内容区域左边的导航不会上下移动。
引入了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侧边导航页面效果相关推荐

  1. android 气球菜单,jQuery实现气球弹出框式的侧边导航菜单效果

    本文实例讲述了jQuery实现气球弹出框式的侧边导航菜单效果.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的气球弹出框式的侧边导航菜单,预览效果时左下角会提示错误,而且看不到效果,刷 ...

  2. 状态输出导航栏html,Vue实现导航栏效果(选中状态刷新不消失)_百厌_前端开发者...

    用 1.首先把这些小图片放到src/assets路径下面(自动base64编码) 2.在data()里边定义一个选中对应的变量isSelect,和循环遍历的数组,数组下面放图标对应的文字,和选中,未选 ...

  3. jQuery实现侧边导航手风琴效果

    侧导航的手风琴效果是指,点击含子层导航的父导航时,使原本隐藏的子导航显示,再次点击,子层导航又恢复隐藏,同时,同一时间只有一个父导航的子导航能够显示 $("#sidenav > li& ...

  4. 【机器学习实践】Jupyter Notebook安装 侧边导航栏功能 操作及其他常用扩展功能介绍...

    安装过程:  1. 首先我们引入jupyter_contrib_nbextension这个第三方库. 2. 在Anaconda Promot中输入命令: pip install jupyter_con ...

  5. html 下拉到一定位置,浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定。这种效果怎么实现呢...

    1.浏览器向下滚动到一定位置继续滚动时,侧边导航固定在页面顶部,再滚动到一定位置时页面再向下滚动侧边导航不再固定.页面向上滚动到一定位置继续滚动时,侧边导航保持在原来位置.这种效果怎么实现呢 2.. ...

  6. Vue实现侧边导航栏于Tab页关联

    技术栈 侧边栏用 Antd tab使用element 效果 <template><div class="main-card"><el-row>& ...

  7. Vue实现导航栏吸顶效果

    <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" ...

  8. vue + elementui 实现动态侧边导航栏

    vue + elementui 实现动态侧边导航栏 引言 router 文件夹 创建 layout 文件夹 components 创建 SubMenu 文件夹封装动态侧边栏 vuex 中根据权限动态获 ...

  9. php侧边栏导航效果,原生js实现电商侧边导航效果

    知识要点 实现原理: 1.点击楼层跳相应楼层,用的是锚点定位 电梯:2F 个护家清 列表title: 这个没什么好说的 2.当点击楼层跳到相应楼层时,该楼层高亮显示 我们的脚本主要就是实现这个功能. ...

最新文章

  1. 面试:说说参数验证 @Validated 和 @Valid 的区别?
  2. C++十进制转二进制
  3. Jenkins 插件管理与系统设置
  4. c语言中table函数,Excel的TABLE函数是什么意思?
  5. 发达国家餐厅的一张罚单 让我们中国人汗颜
  6. [第二届构建之法论坛] 预培训文档(C++版)
  7. elementui可编辑单元格_ElementUI table组件实现点击单元格可编辑
  8. python 中关于无法导入自己写的类。解决方法
  9. arcpy判断图层是否存在的方法
  10. haswell架构_一个月拥有Intel Haswell原型
  11. 阿里云ACA课程之阿里云简介
  12. 34岁程序员面试谈薪资被砍5K,网友:这么降不如在家睡觉
  13. 川普上台,VR游戏开发者也来恶搞蹭热度
  14. 一些关于SLG手游的想法
  15. 声网一起 KTV 功能初体验 | 掘金技术征文
  16. python编写一个程序、输入一个数判断其是偶数还是奇数_编写一个程序,判断用户输入的整数是偶数还是奇数。 (7.0分)_学小易找答案...
  17. 官宣!辛保安任国家电网有限公司董事长、党组书记
  18. IE浏览器JSON未定义
  19. 梦幻西游游戏官网服务器状态,梦幻西游:凌晨4点了,这个游戏究竟还有几个服务器不是鬼区?...
  20. games java mtech_JEIL MTECH打号机打码机

热门文章

  1. 《奔跑吧linux内核》,《奔跑吧linux内核》配套资源迁移到码云上
  2. 扩频解扩通信系统的误码率matlab仿真
  3. 城市道路区域交通信号控制的动态子区划分_陈珊珊
  4. ps如何做出人像水墨画效果
  5. linux系统管理之进程管理(连载)
  6. html5走迷宫游戏三关,HTML 5实现3D迷宫
  7. 屏幕录制怎么加上水印?这两种方法不要错过
  8. PHP 文件校验 文件的 MD5 散列值
  9. 关于写blog这件事
  10. 简单粗暴 |土地利用遥感影像处理(从数据下载到ENVI与ArcGIS结合)