Vue3实现带动画效果的tab栏切换

这篇具有很好参考价值的文章主要介绍了Vue3实现带动画效果的tab栏切换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果图如下所示:

Vue3实现带动画效果的tab栏切换,vue3,vue,vue.js,javascript,ecmascript

实现思路:

其实很简单

1、首先切换tab栏时tab标签激活下标与对应显示内容下标要一致。

Vue3实现带动画效果的tab栏切换,vue3,vue,vue.js,javascript,ecmascript

2、其次点击tab栏切换时更新下标

Vue3实现带动画效果的tab栏切换,vue3,vue,vue.js,javascript,ecmascript

3、最后就是css添加动画效果

Vue3实现带动画效果的tab栏切换,vue3,vue,vue.js,javascript,ecmascript

这样就Vue3实现带动画效果的tab栏切换,vue3,vue,vue.js,javascript,ecmascript了!!!

上全部代码文章来源地址https://www.toymoban.com/news/detail-835063.html

<template>
  <div class="container">
    <el-card>
      <el-button type="text">1、tab栏切换(针对格式相同的内容)<i class="el-icon-s-order" /></el-button>
      <div class="tab-nav">
      <ul class="tab-tilte">
        <li v-for="(item, index) in tabs" :key="index" :class="{active:tabIndex==index}" @click="changeTab(index)">{{ item }}</li>
      </ul>
    </div>
      <div class="tab-content" :style="{ transform: `translateX(${-tabIndex * 100}%)` }">
        <div v-for="(item, index) in contents" :key="index" class="tab-item">{{ item.name }}</div>
      </div>
    </el-card>
  </div>
</template>

<script setup>
import { ref } from 'vue';
    const tabIndex = ref(0);
    const tabs = ['tab栏1', 'tab栏2', 'tab栏3', 'tab栏4'];
    const contents=[
      {
        id:'1',
        name:'内容1',
        pic:'',
        title:'tab栏一区域'
      },
      {
        id:'2',
        name:'内容2',
        pic:'',
        title:'tab栏二区域'
      },
      {
        id:'3',
        name:'内容3',
        pic:'',
        title:'tab栏三区域'
      },
      {
        id:'4',
        name:'内容4',
        pic:'',
        title:'tab栏四区域'
      }
    ];
    const changeTab = (index) => {
      tabIndex.value = index;
    };
 
</script>

<style lang="scss" scoped>
.container {
  width: 96%;
  margin: 2%;
}
.tab-nav ul{//ul默认有40左边距
  padding-left: 0px !important;
}
ul li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tab-tilte {
  display: flex;
}

.tab-tilte li {
  flex: 1;
  padding: 10px;
  text-align: center;
  background-color: #f4f4f4;
  cursor: pointer;
  transition: background-color 0.3s; /* 添加过渡效果 */
}

/* 点击对应的标题添加对应的背景颜色 */
.tab-tilte .active {
  background-color: #09f;
  color: #fff;
}

.tab-content {
  display: flex;
  transition: transform 0.5s ease; /* 添加过渡效果,并使用缓动函数 */
}

.tab-item {
  flex: 1;
  min-width: 96%;
  margin: 2%;
  line-height: 100px;
  text-align: left;
  background: rgb(0, 255, 200);
}
</style>

到了这里,关于Vue3实现带动画效果的tab栏切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【vue3】js + css 实现 视频框选放大:局部细节放大、放大镜效果

    实现鼠标框选区域放大显示。 需求1:放大 按住鼠标左键不放 ——》向右侧拖动,框选出需要放大的区域后 ——》松开鼠标 ——》框选区域放大显示 需求2:还原 按住鼠标左键不放 ——》向左侧拖动,框选出随意大小的区域后 ——》松开鼠标 ——》视图显示大小还原 需求

    2024年02月03日
    浏览(53)
  • vue3 电子书 pdf转图片 pdf实现翻页效果 pdfjs-dist、turn.js电子书翻页效果

    下载 turn.js 这里使用的是  turn4  ,需要下载到本地引入,通过npm下载会报错可以到官网下载,也可以直接在本博客下,已经上传到博客 导入文件之前先创建   vue.config.js 适配一下jquery ,创建好文件以后,把以下代码复制进去 回到vue页面,导入以下文件 参考博客:GitHub -

    2024年02月16日
    浏览(39)
  • JavaScript编程实现tab选项卡切换的效果+1

    之前在“圳品”信息系统使用了tab选项卡来显示信息,详见: JavaScript编程实现tab选项卡切换的效果 在tab选项卡中使用其它div来显示信息就出现了问题,乱套了,比如下面的这段代码: 运行效果如下: 可以看到,第1张选项卡中的div id=\\\"div1\\\" class=\\\"blue\\\"选项卡1/div消失了,而第

    2024年02月03日
    浏览(47)
  • 三种方法实现tab栏切换(CSS方法、JS方法、Vue方法)

    给下图的静态页面添加tab栏切换效果  

    2024年02月13日
    浏览(47)
  • Vue3+vite搭建基础架构(11)--- 菜单栏功能和Tab页功能实现

    这里记录下自己在Vue3+vite的项目使用less来写样式以及使用vite-plugin-vue-setup-extend直接定义组件name,不使用ts语法,方便以后直接使用。这里承接自己的博客Vue3+vite搭建基础架构(10)— 使用less和vite-plugin-vue-setup-extend这篇博客,在该博客项目的基础上增加菜单栏功能和Tab页功能

    2024年02月21日
    浏览(36)
  • Vue3实现打字机效果

    typeit 是一款轻量级打字机特效插件。该打印机特效可以设置打字速度,是否显示光标,是否换行和延迟时间等属性,它可以打印单行文本和多行文本,并具有可缩放、响应式等特点。官方文档

    2024年02月02日
    浏览(53)
  • vue3 实现简单计数器示例——一个html文件展示vue3的效果

    目的 :作为一个新手开发,我想使用 Vue 3 将代码封装在 HTML 文件中时,进行界面打开展示。 学了一个简单计数器界面展示,代码如下: 在 上述HTML 文件里,包含了文件头标题 title , 接着定义了一个内容 div id=\\\"app\\\" 而后定义了一个内容,包含标题和数字,以及两个按钮的 templa

    2024年01月18日
    浏览(41)
  • 使用Vue3实现360度全景效果

    全景展示是一种很炫酷的效果,能够带给用户身临其境的感觉,特别是在旅游、房产等行业非常实用。本文将介绍如何使用Vue3来实现360度全景效果。 首先,我们需要安装两个库: pannellum 和 vue-pannellum 。它们可以帮助我们实现360度全景展示的功能。 在Vue3中,我们可以使用

    2023年04月24日
    浏览(32)
  • uniapp实现红包动画效果(vue3)

    首先安装CSS动画库animate.css依赖 打开main.ts文件引入 这两张图片放入static文件夹下 用到的图片red1.png 用到的图片red2.png 红包整体主要分三部分 红包头部 中部 底部 使用uni.createAnimation()创建动画实例并进行相关操作具体查看官方文档 除了红包底部 头部和中部需要定位

    2024年02月12日
    浏览(48)
  • Taro+vue3 实现滑动列表 时切换电影

    以上代码是滑动的组件 

    2024年01月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包