css多个物体椭圆旋转

实现效果

html代码

html 复制代码
<div class="background-img">
            <div class="area">
                <div class="ball ball1">
                </div>
                <div class="ball ball2">
                </div>
                <div class="ball ball3">
                </div>
                <div class="ball ball4">
                </div>
                <div class="ball ball5">
                </div>
                <div class="ball ball6">
                </div>
                <div class="ball ball7">
                </div>
                <div class="ball ball8">
                </div>
            </div>
        </div>

css代码

javascript 复制代码
.background-img{
        height:32vw;
        width:60%;
        margin-top:7vw;
        text-align: center;
        .area{
                width: 100%;
                height: 100%;
                position: relative;
            }
            .area:hover>.ball{
                animation-play-state:paused;//鼠标悬浮停止动画
            }
            .area>.ball{
                width: 7.0313vw;
                height: 7.0313vw;
                position: absolute;
                border-radius:7.0313vw;
                background-image: linear-gradient(to top,#051F56,#1B8EF8);
                color: #E1EAFE;
            }
            
            .area>.ball1{

                animation: anmiteX 10s cubic-bezier(0.6,0.3,0.3,0.6) -5s infinite alternate,
                anmiteY 10s cubic-bezier(0.6,0.3,0.3,0.6) 0s infinite alternate, 
                scale 20s cubic-bezier(0.6,0.3,0.3,0.6) 0s infinite alternate;
            }
             .area>.ball2{
                animation: anmiteX 10s cubic-bezier(0.6,0.3,0.3,0.6) -7.5s infinite alternate,
                anmiteY 10s cubic-bezier(0.6,0.3,0.3,0.6) -2.5s infinite alternate,
                scale 20s cubic-bezier(0.6,0.3,0.3,0.6) -2.5s infinite alternate;
            }
            .area>.ball3{
                animation: anmiteX 10s cubic-bezier(0.6,0.3,0.3,0.6) -10s infinite alternate,
                anmiteY 10s cubic-bezier(0.6,0.3,0.3,0.6) -5s infinite alternate,
                scale 20s cubic-bezier(0.6,0.3,0.3,0.6) -5s infinite alternate;
            }
            .area>.ball4{
                animation: anmiteX 10s cubic-bezier(0.6,0.3,0.3,0.6) -12.5s infinite alternate,
                anmiteY 10s cubic-bezier(0.6,0.3,0.3,0.6) -7.5s infinite alternate,
                scale 20s cubic-bezier(0.6,0.3,0.3,0.6) -7.5s infinite alternate;
            }
            .area>.ball5{
                animation: anmiteX 10s cubic-bezier(0.6,0.3,0.3,0.6) -15s infinite alternate,
                anmiteY 10s cubic-bezier(0.6,0.3,0.3,0.6) -10s infinite alternate,
                scale 20s cubic-bezier(0.6,0.3,0.3,0.6) -10s infinite alternate;
            }
            .area>.ball6{
                animation: anmiteX 10s cubic-bezier(0.6,0.3,0.3,0.6) -17.5s infinite alternate,
                anmiteY 10s cubic-bezier(0.6,0.3,0.3,0.6) -12.5s infinite alternate,
                scale 20s cubic-bezier(0.6,0.3,0.3,0.6) -12.5s infinite alternate;
            }
            .area>.ball7{
                animation: anmiteX 10s cubic-bezier(0.6,0.3,0.3,0.6) -20s infinite alternate,
                anmiteY 10s cubic-bezier(0.6,0.3,0.3,0.6) -15s infinite alternate,
                scale 20s cubic-bezier(0.6,0.3,0.3,0.6) -15s infinite alternate;
            }
            .area>.ball8{
                animation: anmiteX 10s cubic-bezier(0.6,0.3,0.3,0.6) -22.5s infinite alternate,
                anmiteY 10s cubic-bezier(0.6,0.3,0.3,0.6) -17.5s infinite alternate, 
                scale 20s cubic-bezier(0.6,0.3,0.3,0.6) -17.5s infinite alternate;
            }
             /* 动画 */
            
            /* 在X轴上的移动 */
            @keyframes  anmiteX{
                from{
                    left: 56vw;
                }
                to{
                    left: -1vw;
                }
            }
            /* 在轴上Y的移动 */
            @keyframes  anmiteY{
                from{
                    top: 7vw;
                }
                to{
                    top: 28vw;
                }
            }
            /* 对球进行放大和缩小在视觉上进行远近的模拟 */
            @keyframes  scale{
                0%{
                    transform: scale(0.8,0.8);
                    opacity: 0.5;
                }
                50%{
                    transform: scale(1.3,1.3);
                    opacity: 1;
                }
                100%{
                    transform: scale(0.8,0.8);
                    opacity: 0.5;
                }
            }
    }
相关推荐
林十一npc1 分钟前
【Web功能测试】Web商城搜索模块测试用例设计深度解析
前端·测试用例·web测试·搜索框·商城测试
小p4 分钟前
迈向全栈:服务器上的软件安装
前端·后端
凯哥197011 分钟前
Sciter.js 新手指南-GUI开发中的窗口使用指南
前端
Nuyoah.14 分钟前
《vue3学习手记3》
前端·javascript·vue.js·学习·前端框架
最新资讯动态32 分钟前
首发即燃!《群星纪元》携手鲸鸿动能引领科幻热潮,打造爆款国产SLG手游
前端
涵信35 分钟前
第五节:React Hooks进阶篇-如何用useMemo/useCallback优化性能
前端·javascript·react.js
初遇你时动了情36 分钟前
vue3 uniapp vite 配置之定义指令
javascript·vue.js·uni-app
BillKu40 分钟前
reactive 解构赋值给 ref
前端·javascript·vue.js
岭子笑笑44 分钟前
await-to-js 源码解读
前端
乐影1 小时前
React Native踩坑记录之——屏幕适配
前端·react native