• 技术文章 >web前端 >js教程

    vue做出选项卡切换

    php中世界最好的语言php中世界最好的语言2018-06-06 11:32:43原创1991
    这次给大家带来vue做出选项卡切换,vue做出选项卡切换的注意事项有哪些,下面就是实战案例,一起来看一下。

    这里不跟大家再去把Vue文档上的一些指令用法或者基础知识再复述一遍,既然是从入门到实战,我直接将平时项目中需要实现的一些效果拆分成模块。你们遇到了相关的指令或者不知道怎么用的方法自己对着文档去查,再回过头来看我的实现代码。记住,通读Vue文档真的很重要,很重要!

    这里的Vue以单文件的形式引入,另外代码在实现上会一步步的进行优化,客官不要着急!

    下面是一个样式稍微丑陋,但功能OK的选项卡。

    <!DOCTYPE html> 
    <html> 
     <head> 
      <meta charset="utf-8" />  
      <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">   
      <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width"> 
      <meta name="apple-mobile-web-app-title" content="Vue选项卡"> 
      <title>Vue实现选项卡</title> 
      <script type="text/javascript" src="../js/vue.js"></script> 
     </head> 
     <style> 
      * { 
       padding: 0; 
       margin: 0; 
      } 
      .box { 
       width: 800px; 
       height: 200px; 
       margin: 0 auto; 
       border: 1px solid #000; 
      } 
      .tabs li { 
       float: left; 
       margin-right: 8px; 
       list-style: none; 
      } 
      .tabs .tab-link { 
       display: block; 
       width: 250px; 
       height: 49px; 
       text-align: center; 
       line-height: 49px; 
       background-color: #5597B4; 
       color: #fff; 
       text-decoration: none; 
      } 
      .tabs .tab-link.active { 
       height: 47px; 
       border-bottom: 2px solid #E35885; 
       transition: .3s; 
      } 
      .cards { 
       float: left; 
      } 
      .cards .tab-card { 
       display: none; 
      } 
      .clearfix:after { 
       content: ""; 
       display: block; 
       height: 0; 
       clear: both; 
      } 
      .clearfix { 
       zoom: 1; 
      } 
     </style> 
     <body> 
      <p id="app" class="box"> 
       <ul class="tabs clearfix"> 
        <li v-for="(tab,index) in tabsName"> 
         <a href="#" rel="external nofollow" class="tab-link" @click="tabsSwitch(index)" v-bind:class="{active:tab.isActive}">{{tab.name}}</a> 
        </li> 
       </ul> 
       <p class="cards"> 
        <p class="tab-card" style="display: block;">这里是HTML教程</p> 
        <p class="tab-card">欢迎来到CSS模块</p> 
        <p class="tab-card">嗨,这里是Vue</p> 
       </p> 
      </p> 
     </body> 
     <script> 
      var app = new Vue({ 
       el: "#app", 
       data: { 
        tabsName: [{ 
         name: "HTML", 
         isActive: true 
        }, { 
         name: "CSS", 
         isActive: false 
        }, { 
         name: "Vue", 
         isActive: false 
        }], 
        active: false 
       }, 
       methods: { 
        tabsSwitch: function(tabIndex) { 
         var tabCardCollection = document.querySelectorAll(".tab-card"), 
          len = tabCardCollection.length; 
         for(var i = 0; i < len; i++) { 
          tabCardCollection[i].style.display = "none"; 
          this.tabsName[i].isActive = false; 
         } 
         this.tabsName[tabIndex].isActive = true; 
         tabCardCollection[tabIndex].style.display = "block"; 
        } 
       } 
      }) 
     </script> 
    </html>

    第一代选项卡的实现就先这样子,后面再改进。上面是代码,下面是效果图!Vue我也只是刚刚学入门吧,做了几个项目了,有什么问题我们可以一起探讨,一起进步,欢迎私信我!

    大前端成长进阶课程:进入学习

    Vue实现选项卡切换,具体代码如下所示:

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <title>选项卡</title>
     <script src="../js/vue.js"></script>
     <style>
      li{
       list-style: none;
       float: left;
       margin-right: 20px;
      }
     </style>
    </head>
    <body>
     <p class="app">
      <ul>
       <li v-for="(item,index) in list" @click="tab(index)">{{item.tab}}
        <p v-show="item.show">
         {{item.title}}
        </p>
       </li>
      </ul>
     </p>
     <script>
      let obj=[
       {"tab":"选项一","show":true,"title":"1111"},
       {"tab":"选项二","show":false,"title":"2222"},
       {"tab":"选项三","show":false,"title":"3333"}
      ];
      var vm=new Vue({
       el:".app",
       data:{
        list:obj
       },
       methods:{
        tab:function(index){
         for(var i=0;i<this.list.length;i++){
          this.list[i].show=false;
          if(i==index){
           this.list[index].show=true;
          }
         }
        }
       }
      })
     </script>
    </body>
    </html>

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    vue项目如何国际化开发

    怎样使用vue+webpack做出异步加载

    以上就是vue做出选项卡切换的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:使用NodeJS如何实现WebSocket功能 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 一文带你深入了解Node中的Buffer类• Angular开发问题记录:组件拿不到@Input输入属性• 聊聊基于Node实现单点登录(SSO)的方法• 带你了解Nodejs中的非阻塞异步IO• 深入了解Angular(新手入门指南)
    1/1

    PHP中文网