使用 CSS @property 配合 background 实现屏保动画

2021-04-2209:09:44网页制作Comments1,817 views字数 2017阅读模式

CSS @property 的存在,让以前需要非常多 CSS 代码的工作,一下子变得简单了起来。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

我们尝试利用 CSS @property 配合 background,简单的实现一个屏保动画。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

我们利用 background 可以简单的得到这样一个图形,代码如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

html, body {
    width: 100%;
    height: 100%;
}
body {
    background-image:
        radial-gradient(
            circle at 86% 7%,
            rgba(40, 40, 40, 0.04) 0%,
            rgba(40, 40, 40, 0.04) 50%,
            rgba(200, 200, 200, 0.04) 50%,
            rgba(200, 200, 200, 0.04) 100%
        ),
        radial-gradient(
            circle at 15% 16%,
            rgba(99, 99, 99, 0.04) 0%,
            rgba(99, 99, 99, 0.04) 50%,
            rgba(45, 45, 45, 0.04) 50%,
            rgba(45, 45, 45, 0.04) 100%
        ),
        radial-gradient(
            circle at 75% 99%,
            rgba(243, 243, 243, 0.04) 0%,
            rgba(243, 243, 243, 0.04) 50%,
            rgba(37, 37, 37, 0.04) 50%,
            rgba(37, 37, 37, 0.04) 100%
        ),
        linear-gradient(rgb(34, 222, 237), rgb(135, 89, 215));
}
复制代码

效果如下,还算可以的静态背景图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

使用 CSS @property 配合 background 实现屏保动画文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

在往常,我们想让它动起来,其实是需要费一定的功夫的,而现在,通过 CSS @property,对我们希望进行动画的一些元素细节进行改造,可以得到非常不错的动画效果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

body,
html {
    width: 100%;
    height: 100%;
}

@property --perA {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 75%;
}

@property --perB {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 99%;
}

@property --perC {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 15%;
}

@property --perD {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 16%;
}

@property --perE {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 86%;
}

@property --angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}

body {
    background-image: 
        radial-gradient(
            circle at var(--perE) 7%,
            rgba(40, 40, 40, 0.04) 0%,
            rgba(40, 40, 40, 0.04) 50%,
            rgba(200, 200, 200, 0.04) 50%,
            rgba(200, 200, 200, 0.04) 100%
        ),
        radial-gradient(
            circle at var(--perC) var(--perD),
            rgba(99, 99, 99, 0.04) 0%,
            rgba(99, 99, 99, 0.04) 50%,
            rgba(45, 45, 45, 0.04) 50%,
            rgba(45, 45, 45, 0.04) 100%
        ),
        radial-gradient(
            circle at var(--perA) var(--perB),
            rgba(243, 243, 243, 0.04) 0%,
            rgba(243, 243, 243, 0.04) 50%,
            rgba(37, 37, 37, 0.04) 50%,
            rgba(37, 37, 37, 0.04) 100%
        ),
        linear-gradient(var(--angle), rgb(34, 222, 237), rgb(135, 89, 215));
    animation: move 30s infinite alternate linear;
}

@keyframes move {
    100% {
        --perA: 85%;
        --perB: 49%;
        --perC: 45%;
        --perD: 39%;
        --perE: 70%;
        --angle: 360deg;
    }
}
复制代码

效果如下(因为 Gif 上传大小限制,加快了速率,截取了其中一部分,简单做个示意):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

使用 CSS @property 配合 background 实现屏保动画文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

整体的效果还是挺不错的,完整的 Demo 你可以戳这里:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

CodePen Demo -- CSS @property PureCSS Wrapper文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

作者:chokcoco
链接:https://juejin.cn/post/6951201528543707150
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/zhizuo/21420.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/zhizuo/21420.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定