Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >利用Vue实现简易tab切换效果

利用Vue实现简易tab切换效果

作者头像
kirin
发布于 2020-09-10 08:00:22
发布于 2020-09-10 08:00:22
1.6K00
代码可运行
举报
文章被收录于专栏:Kirin博客Kirin博客
运行总次数:0
代码可运行
1.1 在我们平时浏览网站的时候,经常看到的特效有图片轮播、导航子菜单的隐藏、tab标签的切换等等。这段时间学习了vue后,开始要写出一些简单的特效。
1.2 实现思路是点击上方的标题,下方的内容随之发生改变,上方和下方用的是两个块,是兄弟节点,所以需要点击tab标题和下方内容一一对应,基予两个模块若下标相同是一个内容实现的。
1.3 tab切换第一步先要把HTML写好,这个第一步很关键,主要分为两块结构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <div id="app">
        <ul class="tab-tilte">
            <li>标题一</li>
            <li>标题二</li>
            <li>标题三</li>
            <li>标题四</li>
        </ul>
        <div class="tab-content">
            <div>内容一</div>
            <div>内容二</div>
            <div>内容三</div>
            <div>内容四</div>
        </div>
    </div>

1.4 tab切换第二步写上对应的css样式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <style type="text/css">
        ul li {

            margin: 0;
            padding: 0;
            list-style: none;
        }
        #app {
            width: 600px;
            height: 400px;
            margin: 0 auto;
            border: 1px solid #ccc;
        }
        .tab-tilte{
            width: 90%;
        }
        .tab-tilte li{
            float: left;
            width: 25%;
            padding: 10px 0;
            text-align: center;
            background-color:#f4f4f4;
            cursor: pointer;
        }
     /* 点击对应的标题添加对应的背景颜色 */
        .tab-tilte .active{
            background-color: #09f;
            color: #fff;
        }
        .tab-content div{
            float: left;
            width: 25%;
            line-height: 100px;
            text-align: center;
        }
    </style>

1.5tab切换第三步引入vue实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body>
    <div id="app">
        <ul class="tab-tilte">
            <li @click="cur=0" :class="{active:cur==0}">标题一</li>
            <li @click="cur=1" :class="{active:cur==1}">标题二</li>
            <li @click="cur=2" :class="{active:cur==2}">标题三</li>
            <li @click="cur=3" :class="{active:cur==3}">标题四</li>
        </ul>
        <div class="tab-content">
            <div v-show="cur==0">内容一</div>
            <div v-show="cur==1">内容二</div>
            <div v-show="cur==2">内容三</div>
            <div v-show="cur==3">内容四</div>
        </div>
    </div>
    <script src="./js/vue.js" type="text/javascript"></script>
    <script type="text/javascript">
        var app = new Vue({

            el: "#app",
            data: {

                cur:0 //默认选中第一个tab

            }
        });    
    </script>
</body>

效果图:

1.6tab切换效果改进与优化

(1) 以上代码看起来似乎很简单容易懂,而且效果也能实现,但不够灵活。我们可以发现如果标题和内容同时增多我们要不停的添加cur的索引值,因此我们有必要改进一下代码的写法。 (2)利用vue提供的v-for指令遍历得到索引和值 如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="app">
    <!-- 推荐这种写法-->
    <ul class="tab-tit">
        <li v-for="(title,index) in tabTitle" @click="cur=index" :class="{active:cur==index}">{{title}}</li>
    </ul>
    <div class="tab-content">
        <div v-for="(m,index) in tabMain" v-show="cur==index">{{m}}</div>
    </div>
</div>
    <script type="text/javascript">
        window.onload = function(){
           var app = new Vue({
            el:'#app',
            data:{
                tabTitle: ['标题一', '标题二', '标题三', '标题四'],
                tabMain: ['内容一', '内容二', '内容三', '内容四'],
                cur: 0 //默认选中第一个tab
            }
        })
    }
    </script>

最终效果图如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【说站】vue实现tab切换的放大镜效果
本文实例为大家分享了vue实现tab切换的放大镜效果的具体代码,供大家参考,具体内容如下
很酷的站长
2022/11/24
1.5K0
【说站】vue实现tab切换的放大镜效果
Vue2.0 多 Tab切换组件
PS:TabItems是我的TabSwitch组件,tab页面标题就是 div 中的name值,俩面是内容,也可以是子组件。
White feathe
2021/12/08
6570
Vue2.0 多 Tab切换组件
高级Js-Tab切换组件
高级Js-Tab切换组件 目录 Tab切换组件代码 三段论 匿名包装器 回调函数 Tab切换组件代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>选项卡</title> </head> <style type="text/css"> *{ margin:0; padding: 0; } li{ list-style
星辉
2019/01/15
8.8K0
vue 实现tab切换
tabs是整个tab选项的容器,每个tab代表一个切换项,tab提供插槽用于展现当前tab的内容 似乎没有什么问题
切图仔
2022/09/08
2.3K0
vue 实现tab切换
vue写tab切换
思路 1、采用 v-show 指令,设置 隐藏的状态值 2、切换的标题,绑定点击事件 @cilick=handleTabs(index),点击标题索引绑定到隐藏状态值 代码如下: <template> <div> <div v-for="(item,index) in muenlist" :key="index" @click="handleTabs(index)">{{ item }}</div> <div v-show="tableIndex === 0">页面A的内容
圆圆的冬瓜
2021/08/18
2.5K0
vue写tab切换
Vue-QuickStarted
概念:指令(Directives)是 Vue 提供的带有 v- 前缀 的 特殊 标签属性。
用户11097514
2024/05/31
1350
Vue-QuickStarted
Vue 学习笔记 —— 模板语法 (一)
我们在使用插值表达式的时候,游览器第一次渲染的时候可能会出现一下 表达式的字符串,然后就被替换 data 中的数据内容,这种情况解决就如官方文档的方式皆可以解决了。
Gorit
2021/12/08
1.6K0
Vue 学习笔记 —— 模板语法 (一)
bootstrap tab切换如何让鼠标移动自动切换内容
  bootstrap集成了很多功能,比如nav-tabs组件,可以将相似的内容集中在一个区块中展示。bootstrap tab切换默认是要点击才会切换的,如何实现鼠标移动就自动切换呢?如下图所示,光
ytkah
2018/03/06
2.8K0
bootstrap tab切换如何让鼠标移动自动切换内容
CSS+JS实现tab标签切换
循环将所有的内容标签隐藏,并将tab标题栏的active样式清除,完了之后设置选中标签的内容显示,并给tab标题栏添加active样式。
牛老师讲GIS
2018/10/23
11.8K0
CSS+JS实现tab标签切换
vue笔记5 vueJS中的内置指令
v­-cloak一般与display:none进行结合使用 作用:解决初始化慢导致页面闪动的最佳实践
bamboo
2019/01/29
2K0
vue笔记5  vueJS中的内置指令
原生JS实现Tab切换效果和模态框效果
原生JS实现Tab切换效果 效果展示 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Modal</title> <style> .clearfix:after{ content:''; display: block; clear: both; } li{ list-style: none; } li,ul{
小胖
2018/06/27
10K0
Vue 常用指令(上)
作用:使用 v-on 指令绑定 DOM 事件,并在事件被触发时执行一些 JavaScript 代码。
RiemannHypothesis
2022/11/05
7640
Vue模板语法
基本上就是将数据以字符串的方式拼接到HTML标 签中,前端代码风格大体上如下所示。
星辰_大海
2022/05/10
6.8K0
Vue模板语法
第一章 : Vue2 技术精讲
① 对象 → 键就是类名,值是布尔值。如果值为 true,有这个类,否则没有这个类
捞月亮的小北
2023/12/01
2130
第一章 : Vue2 技术精讲
02 . Vue入门基础之条件渲染,列表渲染,事件处理器,表单控件绑定
如果想注册局部指令,组件中接受一个directives的选项,位于vue实例参数里面,局部指令只能在本组件使用
iginkgo18
2020/11/24
4.5K0
02 . Vue入门基础之条件渲染,列表渲染,事件处理器,表单控件绑定
Vue零基础到高阶第二节☀️
注意:此处为单向绑定,数据对象上的值改变,插值会发生变化;但是当插值发生变化并不会影响数据对象的值。
苏州程序大白
2022/04/13
5.1K0
Vue零基础到高阶第二节☀️
2.vue常用指令
注意:写插值语句的时候,只有的id=app的元素下面才可以使用插值语句,所以,尽可能创建一个标签,将所要渲染的数据,都写入当前标签中
张哥编程
2024/12/13
1040
2.vue常用指令
Vue基础
注意:使用v-text时,会将标签内部的内容覆盖并且替换成对应的内容,若不希望内容被覆盖,则不可使用v-text的写法,两种写法都支持表达式,如:v-text="message + ‘!’",{{ message + “!” }}。
Cikian.
2022/09/22
2.7K0
Vue基础
VUE-指令
指令 (Directives) 是带有 v- 前缀的特殊特性。指令特性的预期值是:单个 JavaScript 表达式。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。
cwl_java
2020/02/11
2.4K0
Vue全家桶之Vue基础(1)
Vue全家桶之Vue基础(1)
Java架构师必看
2021/05/14
1.9K0
Vue全家桶之Vue基础(1)
相关推荐
【说站】vue实现tab切换的放大镜效果
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验