热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何用纯CSS创作404文字变形为NON文字的交互特效...

效果预览在线演示按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。https:codepen.iocomehopepenZoxjXm可交互视频教程此

效果预览

在线演示

按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。

https://codepen.io/comehope/pen/ZoxjXm

可交互视频教程

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/p/pEgDAM/cmQwKAa

源代码下载

本地下载

请从 github 下载。

https://github.com/comehope/front-end-daily-challenges/tree/master/018-stroke-morphing-404-effects

代码解读

定义 dom,容器中包含 3 个

,每个

代表 1 个数字;每个 p 标签包含若干 ,每个 代表 1 个笔划:



居中显示:

html, body {height: 100%;display: flex;align-items: center;justify-content: center;background: linear-gradient(gray, silver);
}

整体布局:

.four-zero-four p {width: 10em;height: 10em;border: 1px dashed white;display: inline-block;margin: 1em;position: relative;
}

设置笔划共有属性:

.four-zero-four p span {position: absolute;box-sizing: border-box;filter: opacity(0.8);
}

画出数字 4 的笔划:

.four span:nth-child(1) {width: 20%;height: 80%;left: 10%;
}.four span:nth-child(2) {width: 100%;height: 20%;bottom: 30%;
}.four span:nth-child(3) {width: 20%;height: 100%;right: 10%;
}

画出数字 0 的笔划:

.zero span:nth-child(1) {width: 20%;height: 100%;left: 10%;
}.zero span:nth-child(2) {width: 100%;height: 20%;top: 10%;
}.zero span:nth-child(3) {width: 20%;height: 100%;right: 10%;
}.zero span:nth-child(4) {width: 100%;height: 20%;bottom: 10%;
}

给笔划上色:

.four span:nth-child(1) {background-color: yellowgreen;
}.four span:nth-child(2) {background-color: turquoise;
}.four span:nth-child(3) {background-color: pink;
}.zero span:nth-child(1) {background-color: skyblue;
}.zero span:nth-child(2) {background-color: plum;
}.zero span:nth-child(3) {background-color: lightcoral;
}.zero span:nth-child(4) {background-color: peachpuff;
}

设置划过数字时笔划的变化效果:

.four-zero-four p:hover span {border: 1px solid black;background-color: transparent;filter: opacity(1);transition: 0.3s;
}

设置划过数字时笔划的偏移量:

.four:hover span:nth-child(1) {left: 0;
}.four:hover span:nth-child(2) {bottom: 0;
}.four:hover span:nth-child(3) {right: 0;
}.zero:hover span:nth-child(1) {left: 0;
}.zero:hover span:nth-child(2) {top: 0;
}.zero:hover span:nth-child(3) {right: 0;
}.zero:hover span:nth-child(4) {bottom: 0;
}

最后,设置缓动时长:

.four-zero-four p span {transition: 0.3s;
}.four-zero-four p:hover span {transition: 0.3s;
}

大功告成!

知识点

  • opacity https://developer.mozilla.org/en-US/docs/Web/CSS/filter#Functions
  • nth-child() https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child
  • transition https://developer.mozilla.org/en-US/docs/Web/CSS/transition

原文地址:https://segmentfault.com/a/1190000014818274




推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
author-avatar
mobiledu2502885385
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有