Vue.js tab实现选项卡切换


Posted in Javascript onMay 16, 2017

本文为大家分享了Vuejs 组件化开发tab组件实例,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <title>index</title>
 <link rel="stylesheet" href="css/index.css" >
 <script type="text/javascript" src="../lib/vue.min.js"></script>
 <script type="text/javascript" src="../lib/jquery-1.11.3.min.js"></script>
 <style>
 * {
 margin: 0;
 padding: 0;
 }

 #tabPanel .itemname {
 height: 40px;
 width: 180px;
 margin-bottom: 10px;
 }

 #tabPanel .itemcontent {
 height: 40px;
 width: 180px;
 }

 #tabPanel .addbtn {
 margin: 10px 0 0 95px;
 width: 185px;
 height: 40px;
 }

 #tabPanel .active {
 background: #eee;
 }

 #tabPanel {
 height: 340px;
 width: 500px;
 margin: 100px auto;
 }

 #tabPanel .tab {
 height: 40px;
 background: #ccc;
 margin-top: 10px;
 }

 #tabPanel .tab ul li {
 list-style: none;
 float: left;
 width: 80px;
 height: 40px;
 text-align: center;
 line-height: 40px;
 }

 #tabPanel .content {
 height: 300px;
 width: 500px;
 background: #eee;
 }
 </style>
</head>

<body>

 <div id="tabItem">
 <my-tab></my-tab>
 <my-tab></my-tab>
 </div>

 <!--组件模板-->
 <script type="text/template" id="tab">
 <div id="tabPanel">
 <label>添加滑块名称:<input type="text" v-model="tabItem" class="itemname"></label><br>
 <label>添加滑块内容:<input type="text" v-model="tabContent" class="itemcontent"></label><br>
 <input type="button" value="添加选项" @click="addItem()" class="addbtn">
 <div class="tab">
 <ul>
  <li v-for="(value, index) in tabs" v-bind:class="{active: index == num }" @mouseover="toggle(index)" @dblclick="del(index)">{{value}}</li>
 </ul>
 </div>
 <div class="content">
 <div class="box" v-for="(value, index) in tabContents" v-show="index == num" contenteditable="true" @blur="editContent(index,value)">{{value+index}}</div>
 </div>
 </div>
 </script>
 <!--组件模板-->
</body>

</html>
<script>
 var vue = new Vue({
 el: "#tabItem",
 data: {

 },
 components: {
 'my-tab': {
 template: '#tab',
 data: function() {
  return {
  tabs: ["第一项", "第二项"],
  tabContents: ["第一项内容", "第二项内容"],
  num: 0,
  tabItem: "",
  tabContent: ""
  }
 },
 methods: {
  //切换滑块
  toggle: function(index) {
  this.num = index;
  },
  //添加滑块
  addItem: function() {
  if (this.tabItem == "" || this.tabContent == "") {
  alert("填写完整的名称和内容");
  } else {
  this.tabs.push(this.tabItem);
  this.tabContents.push(this.tabContent);
  }
  },
  //双击删除滑块
  del: function(index) {
  this.tabs.splice(index, 1);
  this.tabContents.splice(index, 1)
  },
  //编辑选项内容
  editContent: function(index, value) {
  this.tabContents[index] = value;
  console.log(this.tabContents);
  }
 }
 }
 }
 });
</script>

如果大家还想深入学习,可以点击两个精彩的专题:javascript选项卡操作方法汇总 jquery选项卡操作方法汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Archive Network 集合
May 12 Javascript
JavaScript 计算当天是本年本月的第几周
Mar 22 Javascript
jQuery TextBox自动完成条
Jul 22 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
jquery解析xml字符串示例分享
Mar 25 Javascript
初识SmartJS - AOP三剑客
Jun 08 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
全面介绍javascript实用技巧及单竖杠
Jul 18 Javascript
jQuery实现的右下角广告窗体跟随效果示例
Sep 16 Javascript
深入剖析JavaScript instanceof 运算符
Jun 14 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
详解vue页面首次加载缓慢原因及解决方案
Nov 06 Javascript
Vue.js手风琴菜单组件开发实例
May 16 #Javascript
Bootstrap fileinput文件上传预览插件使用详解
May 16 #Javascript
js自定义瀑布流布局插件
May 16 #Javascript
简单实现js点击展开二级菜单功能
May 16 #Javascript
JavaScript禁止微信浏览器下拉回弹效果
May 16 #Javascript
jQuery实现div跟随鼠标移动
Aug 20 #jQuery
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
May 15 #jQuery
You might like
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
php实现的xml操作类
2016/01/15 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
python实现爬虫下载漫画示例
2014/02/16 Python
python生成二维码的实例详解
2017/10/29 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python实现抢购IPhone手机
2018/02/07 Python
python 文件转成16进制数组的实例
2018/07/09 Python
Python 获取div标签中的文字实例
2018/12/20 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
小学生演讲稿大全
2014/04/25 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
个人剖析材料范文
2014/09/30 职场文书
冰雪公主观后感
2015/06/16 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
升学宴家长答谢词
2015/09/29 职场文书
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL