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.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
vue使用require.context实现动态注册路由
Dec 25 Vue.js
浅析vue中的nextTick
Dec 28 Vue.js
vue+element UI实现树形表格
Dec 29 Vue.js
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
Mar 01 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
vue前端工程的搭建
Mar 31 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
vue el-table实现递归嵌套的示例代码
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中改变图片的尺寸大小的代码
2011/07/17 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
Express.JS使用详解
2014/07/17 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
js回调函数仿360开机
2019/12/26 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
简单的Python抓taobao图片爬虫
2014/10/26 Python
python实现连接mongodb的方法
2015/05/08 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
python selenium操作cookie的实现
2020/03/18 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
用canvas显示验证码的实现
2020/04/10 HTML / CSS
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
工地安全生产标语
2014/06/06 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
大学感恩节活动总结
2015/05/05 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
基于Go语言构建RESTful API服务
2021/07/25 Golang
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang