vue二选一tab栏切换新做法实现


Posted in Vue.js onJanuary 19, 2021

问题描述

在我们做项目的过程中,有时候会要做一些tab栏切换效果。有两个tab的,有三个tab的,甚至有五六七八个tab的。平常我们直接拿饿了么的tab组件用就行了,但是偶尔自己闲着没事,自己写个两个tab切换效果的,即二选一效果。闲话少说,上动态效果图

vue二选一tab栏切换新做法实现

本案例适合两个tab的(三个tab的可以仿照我的写,如果是四五个tab用饿了么组件会更快些)

代码如下

HTML部分

<template>
 <div id="app">
  <div class="tabWrap">
   <!-- 这个结构是tab导航,并给其绑定对应的点击事件,在点击事件的回调中
   去控制对应内容的显示隐藏和样式的修改即:tab的切换-->
   <div class="tabNav">
    <div class="navOne" @click="tabOne">tab1</div>
    <div class="navTwo" @click="tabTwo">tab2</div>
   </div>
   <!-- 这个结构是tab导航对应的内容 -->
   <div class="tabContent">
    <!-- 通过v-show控制隐藏,同一时刻隐藏一个显示一个,就实现了tab栏的切换效果了 -->
    <div class="navOneBox" v-show="showTabOne">我是切换1</div>
    <div class="navTwoBox" v-show="showTabTwo">i am tab2</div>
   </div>
  </div>
 </div>
</template>

js部分

<script>
export default {
 name: "app",
 data() {
  return {
   showTabOne: true, // 二选一tab切换
   showTabTwo: false, // 二选一tab切换
  };
 },
 methods: {
  // 二选一tab栏切换
  tabOne() {
   /*
    点击tab1的时候,让tab1显示,tab2隐藏,即showTabOne为true,showTabTwo为false
    同时修改tab1的样式使其"高亮",注意不要忘了修改tab2的样式,使其"不高亮"。
    点击tab2的时候,也是同理。
   */
   this.showTabOne = true;
   this.showTabTwo = false;
   document.querySelector(".navOne").style.backgroundColor = "#fff";
   document.querySelector(".navTwo").style.backgroundColor = "#e3e3e3";
   document.querySelector(".navOne").style.color = "#3985EC";
   document.querySelector(".navTwo").style.color = "#80868D";
  },
  // 二选一tab栏切换
  tabTwo() {
   this.showTabTwo = true;
   this.showTabOne = false;
   document.querySelector(".navOne").style.backgroundColor = "#e3e3e3";
   document.querySelector(".navTwo").style.backgroundColor = "#fff";
   document.querySelector(".navTwo").style.color = "#3985EC";
   document.querySelector(".navOne").style.color = "#80868D";
  },
 },
};
</script>

css部分

<style lang="less">
.tabNav {
 width: 126px;
 height: 30px;
 border-radius: 2px;
 background-color: #e3e3e3;
 display: flex;
 align-items: center;
 justify-content: space-evenly;
 .navOne {
  width: 60px;
  height: 26px;
  border-radius: 2px;
  background-color: #fff;
  color: #3985ec;
  font-size: 14px;
  font-weight: 500;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
 }
 .navTwo {
  width: 60px;
  height: 26px;
  color: #80868d;
  border-radius: 2px;
  font-size: 14px;
  font-weight: 500;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
 }
}
.tabContent {
 margin-top: 8px;
 .navOneBox {
  background-color: #bfa;
 }
 .navTwoBox {
  background-color: #baf;
 }
}
</style>

到此这篇关于vue二选一tab栏切换新做法实现的文章就介绍到这了,更多相关vue tab栏切换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
一篇超完整的Vue新手入门指导教程
Nov 18 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
vue el-upload上传文件的示例代码
Dec 21 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
Vue 数据响应式相关总结
Jan 28 Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
HTML+VUE分页实现炫酷物联网大屏功能
May 27 Vue.js
三种方式清除vue路由跳转router-link的历史记录
Apr 10 Vue.js
使用vuex-persistedstate本地存储vuex
Apr 29 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 Vue.js
el-table-column 内容不自动换行的解决方法
Aug 14 Vue.js
vue-resource 拦截器interceptors使用详解
Jan 18 #Vue.js
vue element el-transfer增加拖拽功能
Jan 15 #Vue.js
Vue实现多页签组件
Jan 14 #Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 #Vue.js
Vue中引入svg图标的两种方式
Jan 14 #Vue.js
vue+element table表格实现动态列筛选的示例代码
Jan 14 #Vue.js
vue 递归组件的简单使用示例
Jan 14 #Vue.js
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
PHP 中dirname(_file_)讲解
2007/03/18 PHP
纯php生成随机密码
2015/10/30 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
2017/12/14 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
python 图片验证码代码
2008/12/07 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
pandas对指定列进行填充的方法
2018/04/11 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
详解px单位html5响应式方案
2018/03/08 HTML / CSS
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
医药大学生求职简历的自我评价
2013/10/17 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
2015年秋季灭鼠工作总结
2015/07/27 职场文书
高中历史教学反思
2016/02/19 职场文书
Python字典的基础操作
2021/11/01 Python