vue3-内置组件-TransitionGroup

<TransitionGroup>

是一个内置组件,用于对 v-for 列表中的元素或组件的插入、移除和顺序改变添加动画效果。

与 <Transition> 的区别

<TransitionGroup> 支持和 <Transition> 基本相同的 props、CSS 过渡 class 和 JavaScript 钩子监听器,但有以下几点区别:

  • 默认情况下,它不会渲染一个容器元素。但你可以通过传入 tag prop 来指定一个元素作为容器元素来渲染。

  • 过渡模式在这里不可用,因为我们不再是在互斥的元素之间进行切换。

  • 列表中的每个元素都必须有一个独一无二的 key attribute。

  • CSS 过渡 class 会被应用在列表内的元素上,而不是容器元素上。

当在 DOM 内模板中使用时,组件名需要写为 <transition-group>。

进入 / 离开动画

模板

<TransitionGroup name="list" tag="ul"><li v-for="item in items" :key="item">{{ item }}</li>
</TransitionGroup>

样式

.list-enter-active,
.list-leave-active {transition: all 0.5s ease;
}
.list-enter-from,
.list-leave-to {opacity: 0;transform: translateX(30px);
}

效果

移动动画

上面的示例有一些明显的缺陷:当某一项被插入或移除时,它周围的元素会立即发生“跳跃”而不是平稳地移动。我们可以通过添加一些额外的 CSS 规则来解决这个问题:

.list-move, /* 对移动中的元素应用的过渡 */
.list-enter-active,
.list-leave-active {transition: all 0.5s ease;
}.list-enter-from,
.list-leave-to {opacity: 0;transform: translateX(30px);
}/* 确保将离开的元素从布局流中删除以便能够正确地计算移动的动画。 */
.list-leave-active {position: absolute;
}

现在动画没有那么生硬了,流畅很多

渐进延迟列表动画

通过在 JavaScript 钩子中读取元素的 data attribute,我们可以实现带渐进延迟的列表动画。首先,我们把每一个元素的索引渲染为该元素上的一个 data attribute:

需要添加 gasp 动画库

pnpm install gsap
<script lang="ts" setup>
import { ref, computed } from 'vue'
import gsap from 'gsap'
const list = [{ msg: 'Bruce Lee' },{ msg: 'Jackie Chan' },{ msg: 'Chuck Norris' },{ msg: 'Jet Li' },{ msg: 'Kung Fury' }
]const query = ref('')const computedList = computed(() => {return list.filter((item) => item.msg.toLowerCase().includes(query.value))
})function onBeforeEnter(el) {el.style.opacity = 0el.style.height = 0
}function onEnter(el, done) {gsap.to(el, {opacity: 1,height: '1.6em',delay: el.dataset.index * 0.15,onComplete: done})
}function onLeave(el, done) {gsap.to(el, {opacity: 0,height: 0,delay: el.dataset.index * 0.15,onComplete: done})
}
</script><template><div class="container"><input v-model="query" /><TransitionGrouptag="ul":css="false"@before-enter="onBeforeEnter"@enter="onEnter"@leave="onLeave"><li v-for="(item, index) in computedList" :key="item.msg" :data-index="index">{{ item.msg }}</li></TransitionGroup></div>
</template><style lang="scss" scoped>
.container {
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/672218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux centos安装LibreOffice

1.下载安装包 #下载安装包 cd /opt wget https://mirror.cyberbits.eu/tdf/libreoffice/stable/24.2.0/rpm/x86_64/LibreOffice_24.2.0_Linux_x86-64_rpm.tar.gz2.解压安装包 #解压安装包 tar -zxvf LibreOffice_24.2.0_Linux_x86-64_rpm.tar.gz3.安装 #安装 cd /opt/LibreO…

Elasticsearch单个索引数据量过大的优化

当Elasticsearch&#xff08;ES&#xff09;中的单个索引&#xff08;index&#xff09;的数据量变得过大时&#xff0c;可能会遇到性能下降、查询缓慢、管理困难等问题。为了优化和应对大索引的挑战&#xff0c;可以考虑以下策略&#xff1a; 1. 使用分片和副本 分片&#xf…

aspose-words字体转换

aspose-words字体转换 简介 项目中经常遇到文档处理时,甲方要求字体需要替换,或者转出来的文档字体对不上,反反复复改非常繁琐,这时候我们就需要aspose-words来替换字体,选择合适的,项目上需要的,各种各样的字体刚好aspose-words提供了相关的方法,就是使用使用 TrueTy…

代驾应用系统(ssm)

登录首页 管理员界面 代驾司机界面 普通用户界面 前台页面 1、系统说明 &#xff08;1&#xff09; 框架&#xff1a;spring、springmvc、mybatis、mysql、jsp &#xff08;2&#xff09; 系统分为前台系统、后端管理系统 2、欢迎留言联系交流学习讨论&#xff1a;qq 97820625…

链表:反转链表

反转链表 反转链表&#xff0c;常用的方法有迭代&#xff0c;栈反转&#xff0c;递归反转。 迭代 比如&#xff0c;现有链表1->2->3->4->5&#xff0c; 首先&#xff0c;从第一个节点开始&#xff0c;反转&#xff0c;将1->null&#xff0c; 接着向下一个节点…

wsl 安装minikube

Minikube是一种轻量化的Kubernetes集群&#xff0c;专为开发者和学习者设计&#xff0c;以便他们能够更好地学习和体验Kubernetes的功能。它利用个人PC的虚拟化环境&#xff0c;实现了Kubernetes的快速构建和启动。目前&#xff0c;Minikube已经支持在macOS、Linux和Windows平台…

部署 Spring 项目到 Linux 云服务器上

关于 Linux 服务器安装 JDK ,Mysql&#xff0c;配置安全组&#xff08;这些都是必要的&#xff09; 推荐看在 Linux 上搭建 Java Web 项目环境&#xff08;最简单的进行搭建&#xff09; 流程 1.上传Jar包到服务器 要想部署 Spring 项目&#xff0c;先要将 Spring 项目打成 J…

Linux--文件

文件的基本信息 文件是计算机系统中存储数据的一种单位。 它可以是文本、图像、音频、视频等信息的载体。文件通常以特定的格式和拓展名来表示其内容和类型。 在计算机系统中&#xff0c;文件使用文件名来唯一标识和访问。文件可以被创建、读取、写入、复制、移动、删除等操作…

django密码管理器(创建项目)

目录 创建项目 安装django 创建项目(django-admin) 创建管理员用户 创建数据库 创建项目 新建一个项目文件夹&#xff0c;如"密码管理器" 安装django 要先安装pip,pip安装地址:pypi.org、pypi.python.org、cheeseshop.python.org pip install django 创建项…

相机图像质量研究(8)常见问题总结:光学结构对成像的影响--工厂调焦

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

Python程序员面试题精选(1)

本文精心挑选了10道Python程序员面试题&#xff0c;覆盖了Python的多个核心领域&#xff0c;包括装饰器、lambda函数、列表推导式、生成器、全局解释器锁(GIL)、单例模式以及上下文管理器等。每道题都附有简洁的代码示例&#xff0c;帮助读者更好地理解和应用相关知识点。 题目…

嵌入式中IPv5去哪了?

只要使用过电脑的人&#xff0c;99%应该都知道IP地址&#xff0c;前几个月有一个重大的新闻“全球IPv4地址耗尽”相信大家都听说了。 然后IPv6就成了当下发展的趋势&#xff0c;包括有些手机APP会重点标注“兼容IPv6”等信息。那么问题来了&#xff1a;IPv4之后直接是IPv6&…

高灵敏比色法IgG2a (mouse) ELISA kit

用于检测IgG2a&#xff08;小鼠&#xff09;的高灵敏度ELISA试剂盒&#xff0c;仅需90分钟即可得到实验结果 免疫球蛋白G&#xff08;IgG&#xff09;是一种免疫球蛋白单体&#xff0c;由两条&#xff08;γ&#xff09;重链和两条轻链组成。每个IgG分子包含两个抗原结合域和一…

十九、k8s如何优先删除利用率低的Pod

同一应用的不通Pod可能其利用率是不同的。在对应用执行缩容时&#xff0c;希望移除利用率较低 的Pod. 通过使用 controller.kubernetes.io/pod-deletion-cost 注解&#xff0c;用户可以对 ReplicaSet 缩容时要先删除哪些 Pod 设置偏好。 类别&#xff1a;注解特性状态&#xf…

修改JDK文件路径或名称(以及修改后jJRE文件变红的解决)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Vue中对虚拟DOM的理解

作为现代前端开发中的主流框架之一&#xff0c;Vue.js是一个非常流行的JavaScript框架&#xff0c;其核心概念之一就是虚拟DOM&#xff08;Virtual DOM&#xff09;。在本篇文章中&#xff0c;我们将深入探讨Vue中虚拟DOM的概念&#xff0c;并讨论为什么它在前端开发中如此重要…

详解洛谷P2016 战略游戏/BZOJ0495. 树的最小点覆盖之战略游戏(贪心/树形DP)

Description Bob喜欢玩电脑游戏&#xff0c;特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡&#xff0c;城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵&#xff0c;使得这些士兵能了望到所有的路。 注意&…

mfc110.dll是什么?解决mfc110.dll丢失windows系统常见问题

今天我在打开电脑软件时候&#xff0c;突然报错出现找不到mfc110.dll丢失&#xff0c;无法打开软件&#xff0c;我不知道是什么原因&#xff0c;后面找了很久才找到解决方法&#xff0c;那么mfc110.dll是什么&#xff1f;为什么会丢失和mfc110.dll解决方法是什么&#xff0c;今…

vue3项目中使用mapv

vue3项目中使用mapv mapv是百度地图官方提供的地图数据可视化开源项目&#xff0c;提供了很多效果酷炫的绘图api mapv地址在这里&#xff0c;示例图在这里 先解释为什么要用mapv echarts画的地图&#xff0c;都是行政区划&#xff0c;就算是geo地图&#xff0c;也只能在行政…

【计算机网络】17、http request header Origin 属性、跨域 CORS、同源、nginx 反向代理、预检请求

文章目录 一、Origin 含义二、跨源资源共享&#xff1a;**Cross-Origin Resource Sharing** CORS2.1 跨域的定义2.2 功能概述2.3 场景示例2.3.1 简单请求2.3.2 Preflighted requests&#xff1a;预检请求 2.4 header2.4.1 http request header2.4.1.1 Origin2.4.1.2 Access-Con…