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

前端 CSS 经典:好看的标题动画

前言:好看的标题动画实现。

效果:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>body {height: 100vh;background: #000;display: flex;flex-direction: column;align-items: center;justify-content: center;}p:nth-child(1) {color: red;}p:nth-child(2) {color: yellow;}p:nth-child(3) {color: blue;}.title {display: flex;font-size: 42px;text-transform: uppercase;letter-spacing: 5px;transform: rotate(-10deg);}.title span {opacity: 0;text-shadow: 1px 1px #533d4a, 2px 2px #533d4a, 3px 3px #533d4a, 4px 4px#533d4a, 5px 5px #533d4a, 6px 6px #533d4a;transform: skew(-10deg);animation: move 1s var(--d) cubic-bezier(0.25, 0.1, 0.57, 1.31) forwards;}@keyframes move {from {opacity: 0;transform: skew(-10deg) translateY(300%);}to {opacity: 1;transform: skew(-10deg) translateY(0);}}</style></head><body><p class="title">这是一个标题哦</p><p class="title">这是一个标题哦</p><p class="title">这是一个标题哦</p></body><script>const ps = document.querySelectorAll(".title");ps.forEach((p) => {const result = p.textContent.split("").map((letter) => `<span>${letter}</span>`).join(``);p.innerHTML = result;});const spans = document.querySelectorAll(".title span");for (let i = 0; i < spans.length; i++) {spans[i].style.setProperty("--d", i * 0.2 + "s");}</script>
</html>

 

相关文章:

  • 深度学习之基于YOLOV5的口罩检测系统
  • mysql--数据库表的创建及基础命令
  • ACL的几种类型
  • linux:SElinux的实验之自动检查错误并提出解决方案
  • NB49 牛群的秘密通信
  • FFmpeg源码:bytestream_get_byte函数解析
  • linux中sysfs创建设备节点的方法和DEVICE_ATTR
  • Linux安装刻录软件
  • SpringBoot前置知识01-SPI接口
  • 谓词逻辑(一)
  • Vue3:可以使用.value获取ref()包裹的值,为何还要存在unref()
  • 基于Vue3 + js-tool-big-box工具库实现3个随机数字的小游戏动画,快来挑战你的非凡手气!
  • 列表的创建和删除
  • 别说废话!说话说到点上,项目高效沟通的底层逻辑揭秘
  • 。。。。。
  • JavaScript-如何实现克隆(clone)函数
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【Leetcode】104. 二叉树的最大深度
  • Hibernate最全面试题
  • Markdown 语法简单说明
  • MySQL主从复制读写分离及奇怪的问题
  • php中curl和soap方式请求服务超时问题
  • vuex 笔记整理
  • Vue官网教程学习过程中值得记录的一些事情
  • 从零开始在ubuntu上搭建node开发环境
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 服务器从安装到部署全过程(二)
  • 基于axios的vue插件,让http请求更简单
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 简单实现一个textarea自适应高度
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 小程序01:wepy框架整合iview webapp UI
  • 原生JS动态加载JS、CSS文件及代码脚本
  • Java性能优化之JVM GC(垃圾回收机制)
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​queue --- 一个同步的队列类​
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #大学#套接字
  • (LeetCode C++)盛最多水的容器
  • (分布式缓存)Redis分片集群
  • (七)Java对象在Hibernate持久化层的状态
  • (全注解开发)学习Spring-MVC的第三天
  • .apk文件,IIS不支持下载解决
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET 设计一套高性能的弱事件机制
  • .NET 依赖注入和配置系统
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @RequestMapping处理请求异常
  • @Validated和@Valid校验参数区别
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt