当前位置: 首页 > 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个随机数字的小游戏动画,快来挑战你的非凡手气!
  • 列表的创建和删除
  • 别说废话!说话说到点上,项目高效沟通的底层逻辑揭秘
  • 。。。。。
  • [数据结构]链表的实现在PHP中
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【刷算法】从上往下打印二叉树
  • Android Studio:GIT提交项目到远程仓库
  • Android框架之Volley
  • ERLANG 网工修炼笔记 ---- UDP
  • iOS小技巧之UIImagePickerController实现头像选择
  • React-redux的原理以及使用
  • swift基础之_对象 实例方法 对象方法。
  • tab.js分享及浏览器兼容性问题汇总
  • Vim Clutch | 面向脚踏板编程……
  • Vue--数据传输
  • 读懂package.json -- 依赖管理
  • 简析gRPC client 连接管理
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 什么是Javascript函数节流?
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • const的用法,特别是用在函数前面与后面的区别
  • #### go map 底层结构 ####
  • (7)STL算法之交换赋值
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (过滤器)Filter和(监听器)listener
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三)elasticsearch 源码之启动流程分析
  • (转)c++ std::pair 与 std::make
  • (转载)Google Chrome调试JS
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .Net IOC框架入门之一 Unity
  • .net 简单实现MD5
  • .NET 使用配置文件
  • .Net6 Api Swagger配置
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET微信公众号开发-2.0创建自定义菜单
  • //TODO 注释的作用
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理