最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

如何使用纯CSS实现一只纸鹤(附源码)

来源:懂视网 责编:小采 时间:2020-11-02 22:07:22
文档

如何使用纯CSS实现一只纸鹤(附源码)

如何使用纯CSS实现一只纸鹤(附源码):本篇文章给大家带来的内容是关于如何使用纯CSS实现一只纸鹤(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。效果预览源代码下载https://github.com/comehope/front-end-daily-challenges代码解读定义 dom,容器中包
推荐度:
导读如何使用纯CSS实现一只纸鹤(附源码):本篇文章给大家带来的内容是关于如何使用纯CSS实现一只纸鹤(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。效果预览源代码下载https://github.com/comehope/front-end-daily-challenges代码解读定义 dom,容器中包
本篇文章给大家带来的内容是关于如何使用纯CSS实现一只纸鹤(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

3892307135-5b89db4600e00_articlex.gif

源代码下载

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,容器中包含 6 个元素,分别代表头、颈、身体侧面、翅、尾、胸:

<div class="cranes">
 <span class="head"></span>
 <span class="neck"></span>
 <span class="side"></span>
 <span class="wing"></span>
 <span class="tail"></span>
 <span class="belly"></span>
</div>

居中显示:

body {
 margin: 0;
 height: 100vh;
 display: flex;
 align-items: center;
 justify-content: center;
 background-color: dodgerblue;
}

定义容器尺寸:

.cranes {
 width: 52em;
 height: 50em;
 font-size: 7px;
}

设置纸鹤的颜色为白色:

.cranes {
 color: white;
}

画出头部:

.cranes {
 position: relative;
}

.head {
 border-left: 13em solid transparent;
 border-right: 6em solid transparent;
 border-bottom: 2em solid;
 position: absolute;
 left: 0;
 top: 21;
 transform: rotate(-5deg);
}

把以上创建三角形的代码抽象成一个模板,然后数据都改为变量,类似于调用函数的样子:

.cranes span {
 border-left: calc(var(--left) * 1em) solid transparent;
 border-right: calc(var(--right) * 1em) solid transparent;
 border-bottom: calc(var(--bottom) * 1em) solid;
 position: absolute;
 transform: rotate(calc(var(--rotation) * 1deg));
 left: calc(var(--x) * 1em);
 top: calc(var(--y) * 1em);
}

.head {
 --left: 13;
 --right: 6;
 --bottom: 2; 
 --x: 0;
 --y: 21;
 --rotation: -5;
}

设置透明度,以便元素叠加处有折纸效果:

.cranes span {
 filter: opacity(0.6);
}

接下来就是逐个调用生成三角形的函数创建其他三角形:

颈:

.neck {
 --left: 6;
 --right: 6;
 --bottom: 12;
 --x: 14;
 --y: 19;
 --rotation: 75;
}

身体侧面:

.side {
 --left: 1.5;
 --right: 11.5;
 --bottom: 20;
 --x: 18.8;
 --y: 15.1;
 --rotation: 20;
}

翅:

.wing {
 --left: 18.7;
 --right: 30;
 --bottom: 8;
 --x: 6.7;
 --y: 9.2;
 --rotation: -41.9;
}

尾:

.tail {
 --left: 18.6;
 --right: 7.7;
 --bottom: 3.9;
 --x: 19.6;
 --y: 38.1;
 --rotation: -126.5;
}

胸:

.belly {
 --left: 6.2;
 --right: 1.8;
 --bottom: 11.5;
 --x: 17.5;
 --y: 27.8;
 --rotation: -99;
}

至此,纸鹤画完。
最后,增加一点交互效果,当鼠标悬停时,由等腰直角三角形变形成鹤:

.cranes:hover span {
 animation: appear 1s ease-in;
}

@keyframes appear {
 from {
 border-left: 3em solid transparent;
 border-right: 3em solid transparent;
 border-bottom: 3em solid;
 position: absolute;
 transform: rotate(0deg);
 left: calc((52em - 3em) / 2);
 top: calc((50em - 3em) / 2);
 }
}

大功告成!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

如何使用纯CSS实现一只纸鹤(附源码)

如何使用纯CSS实现一只纸鹤(附源码):本篇文章给大家带来的内容是关于如何使用纯CSS实现一只纸鹤(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。效果预览源代码下载https://github.com/comehope/front-end-daily-challenges代码解读定义 dom,容器中包
推荐度:
标签: html5 纸鹤 css
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top