欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue.js tab实现选项卡切换

程序员文章站 2022-06-24 08:34:47
本文为大家分享了vuejs 组件化开发tab组件实例,供大家参考,具体内容如下

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

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

<head>
 <meta charset="utf-8">
 <title>index</title>
 <link rel="stylesheet" href="css/index.css" rel="external nofollow" >
 <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选项卡操作方法汇总

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