热门标签 | 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




推荐阅读
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 在我们编写的程序中,如果想要实现对浏览器打开的网页进行监视、模拟操纵、动态提取用户输入、动态修改等功能,那么请你抽出宝贵的时间,继续往下阅读。本文介绍的知识和示例程序都 ... [详细]
  • 前端提高篇(七十):SVG基本使用、基本样式、路径path
    SVG是使用XML来描述二维图形和绘图程序的语言。SVG遵循的是xml的规范,与html5的使用有所区别SVG绘制出来的是矢量图,放大之后不会失真官方文 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 浅析对象 VO、DTO、DO、PO 概念
    作者|CatQi链接|cnblogs.comqixuejiap4390086.html前言由于此订阅号换了个皮肤,导致用户接受文章不及时。读者可以打开订阅号「Web项 ... [详细]
  • 来吹下汽车
    最近帮同事的一个朋友选车,最后他决定了一汽大众的迈腾,也就是海外版(欧洲为主)的帕萨特B8,国内如果加长过的话,应该叫B8L吧。基于大众最新的通用MQB平台(模块化横置发动机平台) ... [详细]
  • 2017-08-2621:44:45writer:pprpRMQ问题就是区间最大最小值查询问题;这个SparseTable算法构造一个表, ... [详细]
  • 前端不规则图像点击_如何在前端开发的潮流中快速学习学好学以致用?
    大家好,我是致力于前端开发,前端设计,前端入门的前端小姐姐,今天为大家带来的前端新知识是【雪碧图和滑动门】,不 ... [详细]
  • 使用HTML创建弹出框以便用户输入信息
    在做项目的过程中,我们时常需要进行一些弹框操作,比如在后台管理时需要进行的一些增删改操作,这个时候我们需要使用到弹框,或者在 ... [详细]
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社区 版权所有