博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何用纯 CSS 创作一个没有 DOM 元素的动画
阅读量:6293 次
发布时间:2019-06-22

本文共 1704 字,大约阅读时间需要 5 分钟。

在这里插入图片描述

效果预览

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

可交互视频

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

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

源代码下载

每日前端实战系列的全部源代码请从 github 下载:

代码解读

没有 dom 元素,直接写 css。

设置页面空间:

body {    position: fixed;    margin: 0;    width: 100vw;    height: 100vh;}

用伪元素设置背景图案:

body::before {    content: '';    position: fixed;    width: 200vmax;    height: 200vmax;    background-color: steelblue;    color: turquoise;    background-image:         linear-gradient(            45deg,             currentColor 25%,             transparent 25%, transparent 75%,             currentColor 75%),        linear-gradient(            45deg,             currentColor 25%,             transparent 25%, transparent 75%,             currentColor 75%);    background-position: 0 0, 5vmax 5vmax;    background-size: 10vmax 10vmax;

平移背景图案:

body::before {    top: 50%;    left: 50%;    animation:         9s move infinite ease-in-out alternate;}@keyframes move {    from {        left: -40%;        top: -40%;    }    to {        left: -60%;        top: -60%;    }}

让背景图案转动起来:

body::before {    animation:         9s move infinite ease-in-out alternate,        9s -1.5s rotating infinite ease-in-out alternate;}@keyframes rotating {    to {        transform: rotate(180deg);    }}

平移页面:

body {    top: 50%;    left: 50%;    animation:         3s move infinite ease-in-out alternate;}

缩放页面:

body {    animation:         3s move infinite ease-in-out alternate,        3s zoom infinite ease-in-out alternate;}@keyframes zoom {    to {        transform: scale(10);    }}

最后,增加变色效果:

@keyframes rotating {    to {        transform: rotate(180deg);        filter: hue-rotate(1turn);    }}

大功告成!

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

转载地址:http://becta.baihongyu.com/

你可能感兴趣的文章
Android Adobe Reader 任意代码执行分析(附POC)
查看>>
megalo -- 网易考拉小程序解决方案
查看>>
iOS 网络编程(二)UDP协议小结
查看>>
Dubbo入门(2) - 简单实践
查看>>
关于Open开头的开源技术库全面汇总,看这一篇就够了
查看>>
React Native学习总结第一天
查看>>
程序猿小白应该注意什么
查看>>
Facebook 对前端工程师的要求是啥?一起来看看
查看>>
一个有趣的小例子,带你入门协程模块-asyncio
查看>>
Android每周一个学习计划——RxJava2 0的学习使用
查看>>
Activity源码分析
查看>>
让CoreData更简单些
查看>>
线上CPU100%?看看这篇是怎么排查的。
查看>>
Android 开发者该如何进阶?
查看>>
TCP的3次握手和4次挥手过程
查看>>
YYAsyncLayer 学习
查看>>
Objective-C中的复制忍者卡卡西---NSProxy
查看>>
广州牵引力教育 互联网+企业应用人才名企双选会广州场来啦!
查看>>
MySQL探秘(七):InnoDB行锁算法
查看>>
微服务架构的基础框架选择:Spring Cloud还是Dubbo?
查看>>