Vue.js组件开发-实现字母向上浮动
使用Vue实现字母向上浮动的效果
实现步骤
- 创建Vue项目:使用Vue CLI来创建一个新的Vue项目。
- 定义组件结构:在组件的模板中,定义包含字母的元素。
- 添加样式:使用CSS动画来实现字母向上浮动的效果。
- 绑定动画类:在Vue组件中,为字母元素绑定动画类。
完整代码
<template><!-- 包裹字母的容器 --><div class="floating-letters-container"><!-- 遍历letters数组,为每个字母创建一个span元素 --><spanv-for="(letter, index) in letters":key="index":class="['floating-letter', `delay-${index % 5}`]">{{ letter }}</span></div>
</template><script>
export default {data() {return {// 要显示的字母字符串text: "Hello, World!",// 将字符串拆分为字母数组letters: [],};},mounted() {// 在组件挂载后,将字符串拆分为字母数组this.letters = this.text.split("");},
};
</script><style scoped>
/* 定义字母浮动的动画 */
@keyframes float-up {0% {/* 初始位置:透明度为0,向下偏移20px */opacity: 0;transform: translateY(20px);}100% {/* 最终位置:透明度为1,回到原始位置 */opacity: 1;transform: translateY(0);}
}/* 包裹字母的容器样式 */
.floating-letters-container {display: flex;justify-content: center;align-items: center;font-size: 36px;
}/* 每个字母的样式 */
.floating-letter {/* 应用浮动动画,持续时间为1秒,缓动函数为ease-out,播放一次 */animation: float-up 1s ease-out 1;/* 动画完成后保持最终状态 */animation-fill-mode: forwards;/* 初始透明度为0 */opacity: 0;margin: 0 5px;
}/* 定义不同的延迟时间,使字母依次浮动 */
.delay-0 {animation-delay: 0s;
}
.delay-1 {animation-delay: 0.1s;
}
.delay-2 {animation-delay: 0.2s;
}
.delay-3 {animation-delay: 0.3s;
}
.delay-4 {animation-delay: 0.4s;
}
</style>
代码注释
-
模板部分:
<div class="floating-letters-container">:包裹所有字母的容器,用于布局。v-for="(letter, index) in letters":遍历letters数组,为每个字母创建一个<span>元素。:class="['floating-letter',delay-${index % 5}]":为每个字母元素添加floating-letter类和不同的延迟类,以实现不同的动画延迟。
-
脚本部分:
data():定义组件的数据,包括text和letters。mounted():在组件挂载后,将text字符串拆分为字母数组,并赋值给letters。
-
样式部分:
@keyframes float-up:定义字母向上浮动的动画,从透明度为0、向下偏移20px到透明度为1、回到原始位置。.floating-letters-container:设置包裹字母的容器的布局样式。.floating-letter:为每个字母元素添加浮动动画,并设置初始透明度为0。.delay-0到.delay-4:定义不同的动画延迟时间,使字母依次浮动。
使用说明
- 创建Vue项目:使用命令创建一个新的项目:
npm install -g @vue/cli
vue create my-project
cd my-project
- 替换组件代码:将上述代码复制到
src/components目录下的一个新的.vue文件中,例如FloatingLetters.vue。 - 在主组件中使用:在
src/App.vue中引入并使用FloatingLetters组件:
<template><div id="app"><FloatingLetters /></div>
</template><script>
import FloatingLetters from './components/FloatingLetters.vue';export default {components: {FloatingLetters,},
};
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>
- 运行项目:在终端中运行以下命令启动开发服务器:
npm run serve
打开浏览器,访问http://localhost:8080,查看到字母向上浮动的效果。
相关文章:
Vue.js组件开发-实现字母向上浮动
使用Vue实现字母向上浮动的效果 实现步骤 创建Vue项目:使用Vue CLI来创建一个新的Vue项目。定义组件结构:在组件的模板中,定义包含字母的元素。添加样式:使用CSS动画来实现字母向上浮动的效果。绑定动画类:在Vue组件…...
自研有限元软件与ANSYS精度对比-Bar2D2Node二维杆单元模型-四连杆实例
目录 1、四连杆工程实例以及手算求解 2、四连杆的自研有限元软件求解 2.1、选择单元类型 2.2、导入四连杆工程 2.3、节点坐标定义 2.4、单元连接关系、材料定义 2.5、约束定义 2.6、外载定义 2.7、矩阵求解 2.8、变形云图展示 2.9、节点位移 2.10、单元应力 2.11、…...
04树 + 堆 + 优先队列 + 图(D1_树(D11_伸展树))
目录 一、基本介绍 二、伸展操作 1. 左右情况的伸展 2. 左左情况的伸展 3. 右左情况的伸展 4. 右右情况的伸展 三、其它操作 1. 插入 2. 删除 四、代码实现 一、基本介绍 伸展树是一种二叉搜索树,伸展树也是一种平衡树,不过伸展树并不像AVL树那…...
c语言练习题【数据类型、递归、双向链表快速排序】
练习1:数据类型 请写出以下几个数据的数据类型 整数 a a 的地址 存放a的数组 b 存放a的地址的数组 b的地址 c的地址 指向 printf 函数的指针 d 存放 d的数组 整数 a 的类型 数据类型是 int a 的地址 数据类型是 int*(指向 int 类型的指针) …...
SliverAppBar的功能和用法
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了SliverGrid组件相关的内容,本章回中将介绍SliverAppBar组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的SliverAppBar和普通的AppBar类似,它们的…...
五、定时器实现呼吸灯
5.1 定时器与计数器简介 定时器是一种通过对内部时钟脉冲计数来测量时间间隔的模块。它的核心是一个递增或递减的寄存器(计数器值)。如果系统时钟为 1 MHz,定时器每 1 μs 计数一次。 计数器是一种对外部事件(如脉冲信号ÿ…...
Elasticsearch的索引生命周期管理
目录 说明零、参考一、ILM的基本概念二、ILM的实践步骤Elasticsearch ILM策略中的“最小年龄”是如何计算的?如何监控和调整Elasticsearch ILM策略的性能? 1. **监控性能**使用/_cat/thread_pool API基本请求格式请求特定线程池的信息响应内容 2. **调整…...
【大模型理论篇】最近大火的DeepSeek-R1初探系列1
1. 背景介绍 这一整个春节,被DeepSeek-R1刷屏。各种铺天盖地的新闻以及老板发的相关信息,着实感受到DeepSeek-R1在国外出圈的震撼。 DeepSeek推出了新的推理模型:DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是一个在没有经过监督微调…...
【数据结构】(4) 线性表 List
一、什么是线性表 线性表就是 n 个相同类型元素的有限序列,每一个元素只有一个前驱和后继(除了第一个和最后一个元素)。 数据结构中,常见的线性表有:顺序表、链表、栈、队列。 二、什么是 List List 是 Java 中的线性…...
【C++ STL】vector容器详解:从入门到精通
【C STL】vector容器详解:从入门到精通 摘要:本文深入讲解C STL中vector容器的使用方法,涵盖常用函数、代码示例及注意事项,助你快速掌握动态数组的核心操作! 一、vector概述 vector是C标准模板库(STL&am…...
OpenAI推出Deep Research带给我们怎样的启示
OpenAI 又发新产品了,这次是面向深度研究领域的智能体产品 ——「Deep Research」,貌似被逼无奈的节奏… 在技术方面,Deep Research搭载了优化后o3模型并通过端到端强化学习在多个领域的复杂浏览和推理任务上进行了训练。因没有更多的技术暴露…...
洛谷[USACO08DEC] Patting Heads S
题目传送门 题目难度:普及/提高一 题面翻译 今天是贝茜的生日,为了庆祝自己的生日,贝茜邀你来玩一个游戏。 贝茜让 N N N ( 1 ≤ N ≤ 1 0 5 1\leq N\leq 10^5 1≤N≤105) 头奶牛坐成一个圈。除了 1 1 1 号与 N N N 号奶牛外࿰…...
CSS 溢出内容处理:从基础到实战
CSS 溢出内容处理:从基础到实战 1. 什么是溢出?示例代码:默认溢出行为 2. 使用 overflow 属性控制溢出2.1 使用 overflow: hidden 裁剪内容示例代码:裁剪溢出内容 2.2 使用 overflow: scroll 显示滚动条示例代码:显示滚…...
Spring Boot项目如何使用MyBatis实现分页查询
写在前面:大家好!我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭&#x…...
飞行汽车中的无刷外转子电机、人形机器人中的无框力矩电机技术解析与应用
重点:无刷外转子电机与无框力矩电机:技术解析与应用对比 在现代工业自动化和精密机械领域,无刷电机因其高效、低噪音和高可靠性而备受青睐。其中,无刷外转子电机和无框力矩电机更是以其独特的结构和性能特点,成为众多应用场景中的…...
FreeRTOS学习 --- 队列集
队列集简介 一个队列只允许任务间传递的消息为同一种数据类型,如果需要在任务间传递不同数据类型的消息时,那么就可以使用队列集 ! 作用:用于对多个队列或信号量进行“监听”,其中不管哪一个消息到来,都可让…...
【R语言】R语言安装包的相关操作
一、管理R语言安装包 1、安装R包 install.packages() 2、查看已安装的R包 installed.packages() 3、更新R包 update.packages() 4、卸载R包 remove.packages() 二、加载R语言安装包 打开R语言时,基础包(base包)会自动被加载到内存中…...
15.[前端开发]Day15-HTML+CSS阶段练习(网易云音乐四)
完整代码 01_网易云-header <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…...
【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户登录
🧸安清h:个人主页 🎥个人专栏:【Spring篇】【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎯1.登录-持久层 &…...
测试方案和测试计划相同点和不同点
在软件测试领域,测试方案与测试计划皆为举足轻重的关键文档,尽管它们有着紧密的关联,但在目的与内容层面存在着显著的差异。相同点: 1.共同目标:测试方案和测试计划的核心目标高度一致,均致力于保障软件的…...
RoundedTB安装与部署:从Microsoft Store到手动编译的完整指南
RoundedTB安装与部署:从Microsoft Store到手动编译的完整指南 【免费下载链接】RoundedTB Add margins, rounded corners and segments to your taskbars! 项目地址: https://gitcode.com/gh_mirrors/ro/RoundedTB RoundedTB是一款功能强大的Windows任务栏美…...
避开高光谱求导的坑:你的平滑做对了吗?附MATLAB代码与数据示例
高光谱微分预处理实战指南:如何避免噪声放大陷阱 第一次处理高光谱数据时,我兴奋地直接对原始光谱曲线求导,结果得到了一堆杂乱无章的噪声信号。这个教训让我明白了一个关键原则:未经平滑的微分操作就像在放大镜下观察指纹——细节…...
从MP3到微信语音:一份完整的Java音频格式转换工具链搭建指南(附FFmpeg与silk_v3_encoder配置)
Java音频处理实战:构建MP3到微信语音的高效转换工具链 引言 在即时通讯应用开发中,音频消息的处理一直是技术难点之一。特别是当我们需要将常见的MP3格式转换为微信、QQ等平台专用的SILK编码格式时,开发者往往需要跨越多个技术环节。本文将带…...
IC设计新手必看:Formality形式验证从入门到精通的5个关键步骤
IC设计新手必看:Formality形式验证从入门到精通的5个关键步骤 在芯片设计流程中,形式验证(Formal Verification)是确保设计功能正确性的重要环节。不同于传统的仿真验证,形式验证通过数学方法穷举所有可能的输入组合&a…...
CanCanCan控制器助手终极指南:load_and_authorize_resource深度解析与最佳实践
CanCanCan控制器助手终极指南:load_and_authorize_resource深度解析与最佳实践 【免费下载链接】cancancan The authorization Gem for Ruby on Rails. 项目地址: https://gitcode.com/gh_mirrors/ca/cancancan CanCanCan是Ruby on Rails最强大的授权gem&…...
高效音频录制实战:如何为你的Web应用选择最佳编码方案
高效音频录制实战:如何为你的Web应用选择最佳编码方案 【免费下载链接】Recorder html5 js 录音 mp3 wav ogg webm amr g711a g711u 格式,支持pc和Android、iOS部分浏览器、Hybrid App(提供Android iOS App源码)、微信,…...
3步实战指南:在Kodi上实现115网盘原码播放的完整方案
3步实战指南:在Kodi上实现115网盘原码播放的完整方案 【免费下载链接】115proxy-for-kodi 115原码播放服务Kodi插件 项目地址: https://gitcode.com/gh_mirrors/11/115proxy-for-kodi 115proxy-for-kodi插件是一款专为Kodi媒体中心设计的115网盘代理服务工具…...
tcc-g15:硬件级散热控制的开源替代方案 | 轻量无广告设计
tcc-g15:硬件级散热控制的开源替代方案 | 轻量无广告设计 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 tcc-g15作为Dell G15系列游戏本的开源替代…...
告别手动画图?聊聊Autoware高精地图那些事:开源工具、格式转换与未来展望
自动驾驶高精地图技术全景:从Autoware工具链到行业实践 当我们在谈论自动驾驶时,"高精地图"始终是绕不开的核心技术支柱。与普通导航地图不同,高精地图需要厘米级精度、丰富的语义信息以及实时更新能力。作为自动驾驶开源生态中的重…...
Vivado里SRIO IP核Basic模式配置详解:从链路宽度到Buffer深度,新手避坑指南
Vivado中SRIO IP核Basic模式配置全解析:从参数理解到实战避坑 第一次在Vivado中配置SRIO IP核时,面对密密麻麻的参数选项,大多数工程师都会感到无从下手。作为Xilinx FPGA中实现高速串行通信的关键IP,SRIO(Serial Rap…...
