CSS动画实现跳动的足球(疯狂世界杯)

  发布时间:2023-01-04 16:15:31   作者:馆主阿牛   我要评论
2022卡塔尔世界杯正在如火如荼的进行之中,作为“诸神的黄昏”,本届世界杯备受瞩目,足坛巅峰老将c罗,梅西,内马尔也将随本次世界杯退役,一代人的青春到此结束!本篇我将用css动画写一个简单的跳动的足球,适合初学者练习css动画,赶紧学起来吧

前言

2022卡塔尔世界杯正在如火如荼的进行之中,作为“诸神的黄昏”,本届世界杯备受瞩目,足坛巅峰老将c罗,梅西,内马尔也将随本次世界杯退役,一代人的青春到此结束!本篇博客我将用css动画写一个简单的跳动的足球,适合初学者练习css动画,赶紧学起来吧!

最终效果

请添加图片描述

思路分析

这个效果的布局我是采用flex布局,素材都是背景图片的方式,这些都没啥可讲的,自己去看代码即可!
重点分析一下这个动画,可以将这个效果分解为两个动画:

小球的动画

可以看到小球有个向上跳动的动画,同时在向上跳动的时候资深换有个旋转!

阴影的动画

阴影有个透明度和缩放的变化。

需要注意的是,小球的动画和阴影的动画所消耗的时间是一样的,这样才能保持动画的同步。
还需要注意的是,第二个小球和第三个小球有个动画延迟的效果!

下面就分别来看看这两个简单动画的实现代码吧!

小球的动画

/*小球跳动的动画*/
 @keyframes move{
     from{
         transform: translateY(0) rotate(0);
     }
     to{
         transform: translateY(-350px) rotate(-360deg);
     }
 }

由代码可以看到向上移动了350px,移动的同时逆时针旋转360度!
需要注意的是:移动 translate 一定要放在旋转 rotate 的前面!

阴影的动画

/*阴影变化的动画*/
 @keyframes shadowMove{
     0%{
         opacity: 0.5;
         transform: scale(0.75);
     }
     100%{
         opacity: 0.2;
         transform: scale(1);
     }
 }

由初态到终态,透明度逐渐增大,缩放逐渐恢复!

代码及素材获取

代码

<!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>
        body{
            width: 100vw;
            height: 100vh;
            display: flex;
            justify-content:center;
            align-items:flex-end;
            background: url(img/780.jpg) 0 -100px;
        }
        .box{
            width: 350px;
            height: 300px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        .ball{
            width: 100px;
            height:100px;
            background: url("img/782.jpg");
            background-size: 100px 100px;
            border-radius: 100%;
            animation: move 1s infinite alternate; /*infinite无限循环,alternate动画反向执行回到起点*/
        } 
        /*小球跳动的动画*/
        @keyframes move{
            from{
                transform: translateY(0) rotate(0);
            }
            to{
                transform: translateY(-350px) rotate(-360deg);
            }
        }
        .shadow{
            width:150px;
            height: 40px;
            background-color: #000;
            border-radius: 100%;
            opacity: 0.5;
            margin-top: -10px;
            animation: shadowMove 1s infinite alternate; /*infinite无限循环,alternate动画反向执行回到起点*/
        }
        /*阴影变化的动画*/
        @keyframes shadowMove{
            0%{
                opacity: 0.5;
                transform: scale(0.75);
            }
            100%{
                opacity: 0.2;
                transform: scale(1);
            }
        }
        /* 第二个球动画延迟0.2秒 */
        .second .ball,.second .shadow{
            animation-delay: 0.2s;
        }
        /* 第三个球动画延迟0.5秒 */
        .thrid .ball,.thrid .shadow{
            animation-delay: 0.5s;
        }  
    </style>
</head>
<body>
    <div class="box">
        <div class="ball"></div>
        <div class="shadow"></div>
    </div>
    <div class="box second">
        <div class="ball"></div>
        <div class="shadow"></div>
    </div>
    <div class="box thrid">
        <div class="ball"></div>
        <div class="shadow"></div>
    </div>  
</body>
</html>

图片素材


结语

到此这篇关于CSS动画实现跳动的足球(疯狂世界杯)的文章就介绍到这了,更多相关css跳动足球内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

  • CSS使用SVG实现动态分布的圆环发散路径动画

    这篇文章主要介绍了CSS使用SVG实现动态分布的圆环发散路径动画,第一时间看到这个需求想到的就是 SVG 或者 Canvas,但是由于开发时可能还需要插入其他元素,所以这里还是希
    2022-10-27
  • 使用 CSS 构建强大且酷炫的粒子动画效果

    粒子动画就是页面上存在大量的粒子构建而成的动画。传统的粒子动画主要由 Canvas、WebGL 实现,接下来通过本文给大家介绍使用 CSS 构建强大且酷炫的粒子动画效果,感兴趣的
    2022-08-09
  • CSS巧用渐变实现高级感背景光动画

    本文主要介绍了利用CSS中的conic-gradient()以及box-shadow模拟出光源阴影效果,从而实现一个充满高级感的背景光动画,感兴趣的小伙伴可以跟随小编一起学习一下
    2021-11-30
  • 能用CSS实现的就不要麻烦JavaScript了

    虽然万物都可以是JavaScript,但某种程度css的运行效率会比JavaScript高,所以笔者认为:能用CSS实现的就不用麻烦JavaScript
    2021-09-28

最新评论