vue实现点击横向导航栏实现导航左右滑动
时间: 2023-09-12 16:10:09 浏览: 166
要实现点击横向导航栏实现导航左右滑动,在Vue中可以使用如下步骤:
1. 在template中定义横向导航栏和导航内容区域:
```html
<template>
<div class="nav-container">
<div class="nav-bar">
<ul>
<li v-for="(nav, index) in navList" :key="index" @click="handleNavClick(index)" :class="{ active: activeIndex === index }">{{nav}}</li>
</ul>
</div>
<div class="nav-content" ref="navContent">
<div class="nav-item" v-for="(nav, index) in navList" :key="index">{{nav}}</div>
</div>
</div>
</template>
```
2. 在script中定义data和方法:
```javascript
<script>
export default {
data() {
return {
navList: ['Nav1', 'Nav2', 'Nav3', 'Nav4'], // 导航栏列表
activeIndex: 0 // 当前激活的导航栏索引
}
},
methods: {
// 点击导航栏
handleNavClick(index) {
this.activeIndex = index // 更新当前激活的导航栏索引
const navContent = this.$refs.navContent // 获取导航内容区域
const navItem = navContent.querySelectorAll('.nav-item')[index] // 获取对应的导航内容项
navContent.scrollLeft = navItem.offsetLeft - navContent.offsetLeft // 滚动到对应的导航内容项位置
}
}
}
</script>
```
3. 在style中定义样式:
```css
<style scoped>
.nav-container {
display: flex;
flex-direction: column;
height: 100%;
}
.nav-bar {
height: 40px;
line-height: 40px;
background-color: #f5f5f5;
overflow-x: auto;
white-space: nowrap;
}
.nav-bar ul {
margin: 0;
padding: 0;
}
.nav-bar li {
display: inline-block;
padding: 0 20px;
font-size: 14px;
cursor: pointer;
}
.nav-bar li.active {
color: #1890ff;
border-bottom: 2px solid #1890ff;
}
.nav-content {
flex: 1;
overflow-x: auto;
white-space: nowrap;
}
.nav-item {
display: inline-block;
width: 100%;
height: 100%;
padding: 20px;
box-sizing: border-box;
}
</style>
```
这样就可以实现点击横向导航栏实现导航左右滑动了。
阅读全文