赞
踩
项目截图:
实现方法:
点击左侧菜单根据元素id定位到可视内容区域。
浏览器原生提供了一种方法scrollIntoView
。
通过scrollIntoView方法可以把元素滚动到可视区域内。
behavior: "smooth"是指定滚动方式为平滑效果。
具体代码如下:
- <div class="main">
- <div class="sidebar">
- <el-menu default-active="1" class="nav" @open="handleOpen" @close="handleClose">
- <el-submenu index="1">
- <template slot="title">
- <span>应用API</span>
- </template>
- <el-menu-item-group>
- <el-menu-item
- v-for="(item, index) in sections"
- :key="item.name"
- :index="index"
- @click="changeMenu(item)"
- >{{ item.name }}</el-menu-item
- >
- </el-menu-item-group>
- </el-submenu>
- </el-menu>
- </div>
- <div class="content">
- <div id="Start" class="content-item">
- <h2 class="name">快速开始</h2>
- </div>
- <div id="UpDate" class="content-item">
- <h2 class="name">检查更新</h2>
- </div>
- <div id="DownLoad" class="content-item">
- <h2 class="name">下载应用</h2>
- </div>
- <div id="History" class="content-item">
- <h2 class="name">更新历史</h2>
- </div>
- </div>
- </div>
- data(){
- return {
- sections: [
- {
- name: '快速开始',
- value: 'Start'
- },
- {
- name: '检查更新',
- value: 'UpDate'
- },
- {
- name: '下载应用',
- value: 'DownLoad'
- },
- {
- name: '更新历史',
- value: 'History'
- }
- ]
- }
- },
- methods:{
- changeMenu(item) {
- const el = this.$el.querySelector(`#${item.value}`);
- if (el) {
- el.scrollIntoView({ behavior: 'smooth' });
- }
- }
- }
- .main {
- display: flex;
- .sidebar {
- width: 260px;
-
- .nav {
- height: 100%;
- }
- }
- .content {
- flex: 1;
- height: 78vh;
- overflow-y: auto;
- padding: 20px 30px;
- }
- .content-item {
- margin-bottom: 30px;
-
- &-p {
- padding: 2px 0;
- }
- }
- .content-item-name {
- font-weight: bold;
- padding: 30px 0 20px 0;
- }
- .name {
- margin-bottom: 10px;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。