vue中tab选项卡的实现思路


Posted in Javascript onNovember 25, 2018

今天分享下vue中tab选项卡的套路,废话不多说,直接上效果图

vue中tab选项卡的实现思路

应用场景

•不同注册和登录方式切换
•操作选项切换 如保存和取消
•后台管理系统中各菜单选项切换等
•新闻标题分类切换 如关注 推荐 热点等分类

主要思路

•点击不同 tab 获取 tab 选项卡下标并为其动态绑定一个class(选中状态时的样式)
•点击时使 tab 对应的内容下标与 tab 选项卡下标保持一致
•使用 v-show / v-if 指令控制内容显示与隐藏

代码如下

<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>tab</title>
 <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
 <style>
 html,
 body {
  height: 100%;
  margin: 0;
  padding: 0;
  background-color: #58596b;
 }
 .active {
  color: #fff;
  background: #e74c3c;
 }
 #app {
  width: 800px;
  height: 400px;
  margin: 100px auto;
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .1);
 }
 .menuList {
  width: 800px;
  height: 60px;
  background-color: #33344a;
 }
 ul {
  width: 100%;
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  color: #717181;
  font-size: 16px;
  line-height: 60px;
 }
 ul li {
  flex: 1;
  text-align: center;
  cursor: pointer;
 }
 .tabCon {
  width: 700px;
  margin: 0 auto;
  padding: 40px 20px;
  color: #999;
  font-size: 14px;
  background-color: #fff;
 }
 </style>
</head>
<body>
 <div id="app">
 <div class="menuList">
  <ul>
  <li v-for="(item,index) in list" :key="item.id" :class="{active:num==index}" @click="getNum(index)">
   {{item}}
  </li>
  </ul>
 </div>
 <div class="tabCon">
  <div v-for='(itemCon,index) in tabContents' v-show="index == num">
  {{itemCon}}
  </div>
 </div>
 </div>
 <script>
 var app = new Vue({
  el: "#app",
  data() {
  return {
   num: 0,
   list: ["张三丰", "独孤求败", "周伯通"],
   tabContents: [
   "张三丰,名君宝,字符元,道号三丰。武林至尊,民族英雄 、内拳始祖、太极始祖、武学泰斗、龙行书法始祖张三丰集各派绝学于一身,威震武林,造诣已达炼虚合道至高极境 [1] ,元末明初真人,武当山道人,武当派始祖,正史记载宋理宗淳佑七年(1247年) 出生辽东,14岁考取文武状元,18岁担任博陵县令,(1280年)辞官出家修道,拜火龙真人为师,武林盟主张三丰时隐时现,至今行踪不定,清朝道光年间曾出现在峨眉山。", 
   "独孤求败,自号“剑魔”,纵横江湖三十馀载,杀尽仇寇,败尽英雄,天下更无抗手,无可奈何,惟隐居深谷,以雕为友。呜呼,生平求一敌手而不可得,诚寂寥难堪也。在小说中从未出场过,只曾在人物的口中提及。",
   "周伯通不是金大师小说中的主角,也不是塑造的最丰满、最完善的形象,更不是侠客或英雄的代表,而且就武侠小说最基本的要素-武功、武学所达到的境界来说,周伯通也不是绝顶高手,但毫无疑问,周伯通是金大师所塑造的所有人物中最有意思的一位,至少是最有意思的人物之一。"],
  }
  },
  methods: {
  getNum(index) {
   this.num = index;
  }
  }
 })
 </script>
</body>
</html>

总结

以上所述是小编给大家介绍的vue中tab选项卡的实现思路,希望对大家有所帮助,如果大家有任何疑问小编会及时回复大家的!

Javascript 相关文章推荐
jQuery EasyUI 的EasyLoader功能介绍
Sep 12 Javascript
jquery 查找select ,并触发事件的实现代码
Mar 30 Javascript
页面使用密码保护代码
Apr 10 Javascript
Javascript全局变量var与不var的区别深入解析
Dec 09 Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 Javascript
JavaScript按值删除数组元素的方法
Apr 24 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
Feb 20 Javascript
JS实现动态给标签控件添加事件的方法示例
May 13 Javascript
angular+ionic返回上一页并刷新页面
Aug 08 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 jQuery
浅析java线程中断的办法
Jul 29 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
Jan 22 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
Nov 25 #Javascript
vscode 开发Vue项目的方法步骤
Nov 25 #Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
Nov 25 #Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 #Javascript
vue组件实践之可搜索下拉框功能
Nov 25 #Javascript
详解离线安装npm包的几种方法
Nov 25 #Javascript
vue将单页面改造成多页面应用的方法
Nov 25 #Javascript
You might like
一个程序下载的管理程序(四)
2006/10/09 PHP
discuz安全提问算法
2007/06/06 PHP
删除数组元素实用的PHP数组函数
2008/08/18 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
python中的闭包用法实例详解
2015/05/05 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
小学师德标兵先进事迹材料
2014/05/25 职场文书
岗位职责说明书模板
2014/07/30 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
实习生辞职信范文
2015/03/02 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
卖车协议书范文
2016/03/23 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书