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 相关文章推荐
flash javascript之间的通讯方法小结
Dec 20 Javascript
JavaScript 关键字屏蔽实现函数
Aug 02 Javascript
js改变文章字体大小的实例代码
Nov 27 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
Feb 19 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 Javascript
AngularJS 表达式详细讲解及实例代码
Jul 26 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
Dec 14 Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 Javascript
JavaScript 九种跨域方式实现原理
Feb 11 Javascript
VueCli3.0中集成MockApi的方法示例
Jul 05 Javascript
JavaScript实现tab栏切换效果
Mar 16 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
Jul 09 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 编写的日历
2006/10/09 PHP
PHP 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
浅析PHP 按位与或 (^ 、&amp;)
2013/06/21 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
JS实现页面打印功能
2017/03/16 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
利用Python将文本中的中英文分离方法
2018/10/31 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
铭宣海淘转运:美国、日本、英国转运等全球转运公司
2019/09/10 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
玩具公司的创业计划书
2013/12/31 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
外国人聘用意向书
2014/04/01 职场文书
社区服务活动总结
2014/05/07 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
小学生成绩单评语
2014/12/31 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android