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 17 Vue.js
详解vue 组件注册
Nov 20 Vue.js
vue+element实现动态加载表单
Dec 13 Vue.js
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vue 项目@change多个参数传值多个事件的操作
Jan 29 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
关于Vue Router的10条高级技巧总结
May 06 Vue.js
浅谈Vue的computed计算属性
Mar 21 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
使用vuex-persistedstate本地存储vuex
Apr 29 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
php中json_encode中文编码问题分析
2011/09/13 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
初学Python实用技巧两则
2014/08/29 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
Python中的枚举类型示例介绍
2019/01/09 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
Python 定义只读属性的实现方式
2020/03/05 Python
您的网上新华书店:文轩网
2016/08/24 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
单位成立周年感言
2014/01/26 职场文书
求职面试个人自我评价
2014/02/28 职场文书
运动会演讲稿200字
2014/08/25 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
MySQL 常见存储引擎的优劣
2021/06/02 MySQL