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

本文共 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://tuoso.baihongyu.com/

你可能感兴趣的文章
用户界面控件的王者之争:Kendo UI vs DevExpress(二)
查看>>
跨平台图表控件TeeChart使用教程:将图表数据导出为XML格式
查看>>
一个jsp+jdbc的简单登录程序
查看>>
《android-文件大小》
查看>>
HTTPS的工作原理
查看>>
PhoneGap使用PushPlugin插件实现消息推送
查看>>
Boyer-Moore 算法介绍
查看>>
Hi~属于程序猿的专属锦鲤来了 | 转发这条锦鲤,薪水蹭蹭涨!
查看>>
关于Java中的单例模式
查看>>
Swift之GCD开线程通用模版
查看>>
datepicker
查看>>
我的友情链接
查看>>
myeclipse在retina里模糊问题的解决方案
查看>>
如何在FalconStor中为主机分配磁盘
查看>>
什么样的命名才是合理的?谈命名的原则
查看>>
工作流引擎Synchro FLOW提供的API接口总汇
查看>>
web工程师要警醒
查看>>
浅谈Linux磁盘修复e2fsck命令
查看>>
主板检测卡(DEBUG卡错误代码表)
查看>>
理解五个基本概念,让你更像机器学习专家
查看>>