前端每日实战:18# 视频演示如何用纯 CSS 创作 404 文字变形为 NON 文字的交互特效
效果预览
按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。
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 个 <p>,每个 <p> 代表 1 个数字;每个 p 标签包含若干 <span>,每个 <span> 代表 1 个笔划:
<section class="four-zero-four">
<p class="four">
<span></span>
<span></span>
<span></span>
</p>
<p class="zero">
<span></span>
<span></span>
<span></span>
<span></span>
</p>
<p class="four">
<span></span>
<span></span>
<span></span>
</p>
</section>
居中显示:
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;
}
大功告成!
知识点
前端每日实战:18# 视频演示如何用纯 CSS 创作 404 文字变形为 NON 文字的交互特效的更多相关文章
- 如何用纯 CSS 创作 404 文字变形为 NON 文字的交互特效
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ZoxjXm 可交互视频教 ...
- 18.纯 CSS 创作 404 文字变形为 NON 文字的交互特效
原文地址:https://segmentfault.com/a/1190000014818274 感想: positon:absolute 和 :hover HTML代码: <!-- < ...
- 前端每日实战:122# 视频演示如何用纯 CSS 创作一个苹果系统的相册图标
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/zJKwbO 可交互视频 此视频是可 ...
- 前端每日实战:124# 视频演示如何用纯 CSS 创作一只纸鹤
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/xagoYb 可交互视频 此视频是可 ...
- 前端每日实战:145# 视频演示如何用纯 CSS 创作一个电源开关控件
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/PdMyJd 可交互视频 此视频是可 ...
- 前端每日实战:157# 视频演示如何用纯 CSS 创作一个棋盘错觉动画(实际上每一行都是平行的)
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/VEyoGj 可交互视频 此视频是可 ...
- 前端每日实战:158# 视频演示如何用纯 CSS 创作一个雨伞 toggle 控件
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/pxLbjv 可交互视频 此视频是可 ...
- 前端每日实战:140# 视频演示如何用纯 CSS 创作文本的淡入动画效果
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ZMwgqK 可交互视频 此视频是可 ...
- 前端每日实战:161# 视频演示如何用纯 CSS 创作一张纪念卓别林的卡片(没有笑声的一天就是被荒废的一天)
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/WaaBNV 可交互视频 此视频是可 ...
随机推荐
- HTML 解析类库HtmlAgilityPack
1. HtmlAgilityPack简介 网站中首先遇到的问题是爬虫和解析HTML的问题,一般情况在获取页面少量信息的情况下,我们可以使用正则来精确匹配目标.不过本身正则表达式就比较复杂,同时正则表达 ...
- 关于Visual Studio中书签Bookmark的一些问题
VS自带一个书签功能,但是有个大问题,没有导出功能,因为这个书签是保存在工程.suo文件中,所以在移动,分享,甚至其他情况下很不方便,甚至丢失. 在你分析一个较大的开源,做了30-50个关键代码书签, ...
- 去JQUERY化
时间 2016-05-17 12:43:59 OurJS 原文 http://ourjs.com/detail/573a9cec88feaf2d031d24fc 主题 jQuery 这是一篇使用原 ...
- 《JAVA设计模式》之访问者模式(Visitor)
在阎宏博士的<JAVA与模式>一书中开头是这样描述访问者(Visitor)模式的: 访问者模式是对象的行为模式.访问者模式的目的是封装一些施加于某种数据结构元素之上的操作.一旦这些操作需要 ...
- 《JAVA设计模式》之装饰模式(Decorator)
在阎宏博士的<JAVA与模式>一书中开头是这样描述装饰(Decorator)模式的: 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替 ...
- [Linux] 023 RPM 包校验与文件提取
1. RPM 包校验 $ rpm -V 已安装的包名 选项 释义 -V (verify) 校验指定 RPM 包中的文件 (1) 验证内容中的 8 个信息的具体内容如下 信息名称 释义 S 文件大小是否 ...
- Using Keyboard Navigation
http://technet.microsoft.com/en-us/library/cc939835.aspx
- 【JAVA】java中的length和length()
参考链接: 你注意到Java中的length和length()了吗?外加一个size() java中的求长度length有时有小括号,有时没有小括号,到底什么时候该加小括号呢? 总结: Java中St ...
- DOM IE 兼容性 I
IE8事件模型和DOM事件模型有何不同?如何处理DOM事件模型与IE8事件模型的兼容性? 1 事件模型不一样 DOM的浏览器兼容性问题:事件模型 3个阶段 01 外向内:捕获 ...
- 浏览器报406 错误:The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers
The resource identified by this request is only capable of generating responses with characteristics ...