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中如何自定义右键菜单详解
Dec 08 Vue.js
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
vue脚手架项目创建步骤详解
Mar 02 Vue.js
开发一个封装iframe的vue组件
Mar 29 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
vue.js 使用原生js实现轮播图
Apr 26 Vue.js
VUE解决跨域问题Access to XMLHttpRequest at
May 06 Vue.js
vue3不同环境下实现配置代理
May 25 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
php代码运行时间查看类代码分享
2011/08/06 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python实现二叉堆
2016/02/03 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
超市促销实习自我鉴定
2013/09/23 职场文书
九年级政治教学反思
2014/02/06 职场文书
质检部经理岗位职责
2014/02/19 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
Mysql Online DDL的使用详解
2021/05/20 MySQL
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
Go语言怎么使用变长参数函数
2022/07/15 Golang