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+vant实现购物车全选和反选功能
Nov 17 Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
vue实现登录功能
Dec 31 Vue.js
手写Vue源码之数据劫持示例详解
Jan 04 Vue.js
vuex的使用和简易实现
Jan 07 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 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过滤★等特殊符号的正则
2014/01/27 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
React如何避免重渲染
2018/04/10 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
Python实现的简单hangman游戏实例
2015/06/28 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
python 实现return返回多个值
2019/11/19 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
公司前台辞职报告
2014/01/19 职场文书
2014年党员公开承诺书范文
2014/03/28 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
python源码剖析之PyObject详解
2021/05/18 Python