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的IE和火狐的兼容性注意事项
Mar 17 Javascript
js动态加载以及确定加载完成的代码
Jul 31 Javascript
javascript之typeof、instanceof操作符使用探讨
May 19 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
JS+Canvas绘制时钟效果
Aug 20 Javascript
JS中常用的正则表达式
Sep 29 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
Vue.js实现的表格增加删除demo示例
May 22 Javascript
微信小程序时间轴实现方法示例
Jan 14 Javascript
VUE路由动态加载实例代码讲解
Aug 26 Javascript
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
介绍一下28个JS常用数组方法
May 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中for循环语句的几种变型
2006/11/26 PHP
PHP 开发工具
2006/12/06 PHP
PHP Pear 安装及使用
2009/03/19 PHP
PHP中几种常见的超时处理全面总结
2012/09/11 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
php文件上传的两种实现方法
2016/04/04 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
反腐倡廉警示教育活动总结
2014/05/05 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
北京青年观后感
2015/06/15 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript