当前位置: 首页 > article >正文

Vue.js组件开发-实现字母向上浮动

使用Vue实现字母向上浮动的效果

实现步骤

  1. 创建Vue项目:使用Vue CLI来创建一个新的Vue项目。
  2. 定义组件结构:在组件的模板中,定义包含字母的元素。
  3. 添加样式:使用CSS动画来实现字母向上浮动的效果。
  4. 绑定动画类:在Vue组件中,为字母元素绑定动画类。

完整代码

<template>
  <!-- 包裹字母的容器 -->
  <div class="floating-letters-container">
    <!-- 遍历letters数组,为每个字母创建一个span元素 -->
    <span
      v-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():定义组件的数据,包括textletters
    • mounted():在组件挂载后,将text字符串拆分为字母数组,并赋值给letters
  • 样式部分

    • @keyframes float-up:定义字母向上浮动的动画,从透明度为0、向下偏移20px到透明度为1、回到原始位置。
    • .floating-letters-container:设置包裹字母的容器的布局样式。
    • .floating-letter:为每个字母元素添加浮动动画,并设置初始透明度为0。
    • .delay-0.delay-4:定义不同的动画延迟时间,使字母依次浮动。

使用说明

  1. 创建Vue项目:使用命令创建一个新的项目:
npm install -g @vue/cli
vue create my-project
cd my-project
  1. 替换组件代码:将上述代码复制到src/components目录下的一个新的.vue文件中,例如FloatingLetters.vue
  2. 在主组件中使用:在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>
  1. 运行项目:在终端中运行以下命令启动开发服务器:
npm run serve

打开浏览器,访问http://localhost:8080,查看到字母向上浮动的效果。


http://www.kler.cn/a/530839.html

相关文章:

  • python-leetcode-二叉树的层序遍历
  • 海外问卷调查渠道查,如何影响企业的运营
  • Python线程入门:多线程并发的基础与实践
  • Pyecharts之图表样式深度定制
  • Kotlin 委托详解
  • docker直接运行arm下的docker
  • 基于STM32的网络摄像头
  • 我们信仰AI?从神明到人工智能——信任的进化
  • 【PyQt】学习PyQt进行GUI开发从基础到进阶逐步掌握详细路线图和关键知识点
  • 【实践案例】基于大语言模型的海龟汤游戏
  • 【Excel笔记_4】平均绝对偏差(MAD,Mean Absolute Deviation)的EXCEL公式表达
  • C++底层学习预备:模板初阶
  • AI视频编码器(3.2) 《Swin Transformer V2: Scaling Up Capacity and Resolution》
  • potplayer字幕
  • Leetcode—1427. 字符串的左右移【简单】Plus
  • Kubernetes学习之包管理工具(Helm)
  • 联想拯救者Y9000P IRX8 2023 (82WK) 原厂Win11 家庭中文版系统 带一键还原功能 安装教程
  • 大语言模型的个性化综述 ——《Personalization of Large Language Models: A Survey》
  • 【算法】回溯算法专题③ ——排列型回溯 python
  • [MRCTF2020]Ez_bypass1(md5绕过)
  • 04树 + 堆 + 优先队列 + 图(D1_树(D10_决策树))
  • Rust中的结构体(Struct):数据组织的基石
  • 蓝桥杯备考:高精度算法之除法
  • 基于构件的软件开发方法
  • LeetCode - #197 Swift 实现找出温度更高的日期
  • Rust枚举(Enum)完全指南:用类型安全表达多样性