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 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
vue动态合并单元格并添加小计合计功能示例
Nov 26 Vue.js
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
vue编写简单的购物车功能
Jan 08 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
Vue仿Bibibili首页的问题
Jan 21 Vue.js
vue实现同时设置多个倒计时
May 20 Vue.js
vue-router中hash模式与history模式的区别
Jun 23 Vue.js
vue实现滑动解锁功能
Mar 03 Vue.js
Vue OpenLayer 为地图绘制风场效果
Apr 24 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
javascript 流畅动画实现原理
2009/09/08 Javascript
js arguments对象应用介绍
2012/11/28 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python3生成手写体数字方法
2018/01/30 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
python实现批量转换图片为黑白
2020/06/16 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
电子商务个人职业生涯规划范文
2014/02/12 职场文书
小区推广策划方案
2014/06/06 职场文书
学用政策心得体会
2014/09/10 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
纪律委员竞选稿
2015/11/19 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
团组织关系介绍信
2019/06/24 职场文书