如何使用纯CSS实现一只移动的小白兔动画效果

本篇文章给大家带来的内容是关于如何使用纯css实现一只移动的小白兔动画效果,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

3482408484-5b72195c0a5ff_articlex.gif

代码解读

定义 dom,页面中包含 2 个元素,分别代表兔子和云朵:

立即学习“前端免费学习笔记(深入)”;

登录后复制

居中显示:

body {    margin: 0;    height: 100vh;    display: flex;    align-items: center;    justify-content: center;    background: linear-gradient(midnightblue, black);    font-size: 30px;}

登录后复制

画出兔子的身体:

.rabbit {    width: 5em;    height: 3em;    color: whitesmoke;    background: currentColor;    border-radius: 70% 90% 60% 50%;}

登录后复制

用径向渐变画出兔子的眼睛:

.rabbit {    background:         radial-gradient(            circle at 4.2em 1.4em,            #333 0.15em,            transparent 0.15em        ), /* eye */        currentColor;}

登录后复制

用伪元素画出兔子的右耳:

.rabbit::before {    content: '';    position: absolute;    width: 0.75em;    height: 2em;    background-color: currentColor;    border-radius: 50% 100% 0 0;    transform: rotate(-30deg);    top: -1em;    right: 1em;}

登录后复制

用阴影画出兔子的左耳:

.rabbit::before {    border: 0.1em solid;    border-color: gainsboro transparent transparent gainsboro;    box-shadow: -0.5em 0 0 -0.1em;}

登录后复制

用伪元素画出兔子的尾巴:

.rabbit::after {    content: '';    position: absolute;    width: 1em;    height: 1em;    background-color: currentColor;    border-radius: 50%;    left: -0.3em;    top: 0.5em;}

登录后复制

用阴影画出兔子的腿:

.rabbit::after {    box-shadow:         0.5em 1em 0,        4em 1em 0 -0.2em,        4em 1em 0 -0.2em;}

登录后复制

画出兔子的影子:

.rabbit {    box-shadow: -0.2em 1em 0 -0.75em #333;}

登录后复制

画出一个云朵:

.clouds {    width: 2em;    height: 2em;    color: whitesmoke;    background: currentColor;    border-radius: 100% 100% 0 0;    transform: translate(0, -5em);}.clouds::before,.clouds::after {    content: '';    position: absolute;    background-color: currentColor;    bottom: 0;}.clouds::before {    width: 1.25em;    height: 1.25em;    border-radius: 100% 100% 0 100%;    left: -30%;}.clouds::after {    width: 1.5em;    height: 1.5em;    border-radius: 100% 100% 100% 0;    right: -30%;}

登录后复制

用阴影再画 2 个云朵:

.rabbit {    z-index: 1;}.clouds,.clouds::before,.clouds::after {    box-shadow:     5em 2em 0 -0.3em,    -2em 2em 0 0;}

登录后复制

接下来制作动画效果。
增加兔子跳动的动画:

.rabbit {    animation: hop 3s linear infinite;}@keyframes hop {    20% {        transform: rotate(-10deg) translate(1em, -2em);        box-shadow: -0.2em 1em 0 -1em #333;    }    40% {        transform: rotate(10deg) translate(3em, -4em);        box-shadow: -0.2em 3.25em 0 -1.1em #333;    }    60%, 75% {        transform: rotate(0deg) translate(4em, 0);        box-shadow: -0.2em 1em 0 -0.75em #333;    }}

登录后复制

增加兔子的腿的伸缩动画:

.rabbit::after {    animation: kick 3s infinite linear;}@keyframes kick {    40% {        box-shadow:             0.5em 2em 0,            4.2em 1.75em 0 -0.2em,            4.4em 1.9em 0 -0.2em;    }}

登录后复制

增加云朵飘动的动画:

.clouds {    animation: cloudy 3s infinite linear forwards;    filter: opacity(0);}@keyframes cloudy {    40% {        transform: translate(-3em, -5em);        filter: opacity(0.75);    }    55% {        transform: translate(-4em, -5em);        filter: opacity(0);    }}

登录后复制

大功告成!

相关推荐:

如何使用CSS实现货车loader的效果

如何使用CSS实现货车loader的效果

如何使用CSS实现货车loader的效果

以上就是如何使用纯CSS实现一只移动的小白兔动画效果的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2893843.html

(0)
上一篇 2025年3月10日 22:42:03
下一篇 2025年3月10日 22:42:14

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论