爱心跳动效果 CSS实现

举报
阿童木 发表于 2021/08/25 19:28:39 2021/08/25
【摘要】 爱心跳动效果 CSS实现 实现效果砰砰砰 实现原理通过动画改变每个元素的高度,从而实现每个元素高度变化的效果,为了使每个元素依次跳动,给每个元素添加一定的延时效果,使得从效果元素依次跳动 代码分析核心动画一共写了5个动画,但是实现的东西都是差不多的,只是改变的高度不同,这是其中的一个动画改变元素的高度,并且上移一段距离,这个距离就是画爱心的关键,如果没有这个移动距离,元素始终保持着下端对齐...

爱心跳动效果 CSS实现

实现效果

砰砰砰

爱心跳动效果

实现原理

通过动画改变每个元素的高度,从而实现每个元素高度变化的效果,为了使每个元素依次跳动,给每个元素添加一定的延时效果,使得从效果元素依次跳动

代码分析

核心动画

一共写了5个动画,但是实现的东西都是差不多的,只是改变的高度不同,这是其中的一个动画

改变元素的高度,并且上移一段距离,这个距离就是画爱心的关键,如果没有这个移动距离,元素始终保持着下端对齐,不会摆出爱心的效果,所以这个可以根据自己的实际高度来调定。

@keyframes jump1 {
    30%,50% {
        height: 60px;
        transform: translateY(-30px);
    }
    70%,100% {
        height: 20px;
        transform: translateY(0px);
    }
}

完整代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>爱心跳动效果</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .loveBox {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: rgb(36, 40, 66);
        }

        .loveLine {
            height: 200px;
        }

        .loveLine li {
            float: left;
            list-style: none;
            width: 20px;
            height: 20px;
            border-radius: 10px;
            margin-right: 10px;
        }

        .loveLine li:nth-child(1) {
            background-color: red;
            animation: jump1 3s infinite;
        }

        .loveLine li:nth-child(2) {
            background-color: rgb(238, 118, 5);
            animation: jump2 3s 0.2s infinite;
        }

        .loveLine li:nth-child(3) {
            background-color: rgb(106, 10, 233);
            animation: jump3 3s 0.4s infinite;
        }

        .loveLine li:nth-child(4) {
            background-color: darkmagenta;
            animation: jump4 3s 0.6s infinite;
        }

        .loveLine li:nth-child(5) {
            background-color: rgb(245, 11, 147);
            animation: jump5 3s 0.8s infinite;
        }

        .loveLine li:nth-child(6) {
            background-color: rgb(32, 9, 231);
            animation: jump4 3s 1.0s infinite;
        }

        .loveLine li:nth-child(7) {
            background-color: rgb(36, 170, 81);
            animation: jump3 3s 1.2s infinite;
        }

        .loveLine li:nth-child(8) {
            background-color: #f62e74;
            animation: jump2 3s 1.4s infinite;
        }

        .loveLine li:nth-child(9) {
            background-color: red;
            animation: jump1 3s 1.6s infinite;
        }

        @keyframes jump1 {

            30%,
            50% {
                height: 60px;
                transform: translateY(-30px);
            }

            70%,
            100% {
                height: 20px;
                transform: translateY(0px);
            }
        }

        @keyframes jump2 {

            30%,
            50% {
                height: 120px;
                transform: translateY(-60px);
            }

            70%,
            100% {
                height: 20px;
                transform: translateY(0px);
            }
        }

        @keyframes jump3 {

            30%,
            50% {
                height: 160px;
                transform: translateY(-75px);
            }

            70%,
            100% {
                height: 20px;
                transform: translateY(0px);
            }
        }

        @keyframes jump4 {

            30%,
            50% {
                height: 180px;
                transform: translateY(-60px);
            }

            70%,
            100% {
                height: 20px;
                transform: translateY(0px);
            }
        }

        @keyframes jump5 {

            30%,
            50% {
                height: 200px;
                transform: translateY(-45px);
            }

            70%,
            100% {
                height: 20px;
                transform: translateY(0px);
            }
        }
    </style>
</head>

<body>
    <div class="loveBox">
        <ul class="loveLine">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
</body>

</html>

感觉最近的文章内容都是很简单的东西,之后挑战一些有难度的东西吧!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。