28 星际旋转

news2025/3/2 2:37:11

效果演示

28-星际旋转.gif

实现了一个太阳系动画,其中包括了地球、火星、金星、土星、水星、天王星、海王星以及火卫二号等行星的动画效果。太阳系的行星都被放在一个固定的容器中,并使用CSS动画来实现旋转和移动的效果。当太阳系的行星绕着太阳运行时,它们会围绕太阳旋转,并且在运行过程中会发生碰撞和交叉。

Code

<div class="wrapper">
    <div class="neptune-container">
        <img src="img/neptune.png" />
    </div>
    <div class="uranus-container">
        <img src="img/uranus.svg" />
    </div>
    <div class="saturn-container">
        <img src="img/saturn.png" />
    </div>
    <div class="jupiter-container">
        <img src="img/jupiter.png" />
    </div>
    <div class="mars-container">
        <img src="img/mars.png" />
    </div>
    <div class="earth-container">
        <img src="img/earth.png" />
    </div>
    <div class="venus-container">
        <img src="img/venus.png" />
    </div>
    <div class="mercury-container">
        <img src="img/mercury.png" />
    </div>
    <div class="sun-container">
        <img src="img/sun.png" />
    </div>
</div>
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-image: url(img/space-background.jpg)
}

.wrapper {
    height: 100%;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.wrapper div {
    position: absolute;
    border-radius: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid white;
    position: absolute;
}

.neptune-container {
    height: 850px;
    width: 850px;
}

.neptune-container>img {
    height: 50px;
    width: 50px;
    animation: neptune-rotation 53954ms linear infinite;
}

.uranus-container {
    height: 750px;
    width: 750px;
}

.uranus-container>img {
    height: 75px;
    width: 75px;
    animation: uranus-rotation 37054ms linear infinite;
}

.saturn-container {
    height: 600px;
    width: 600px;
}

.saturn-container>img {
    height: 75px;
    width: 75px;
    animation: saturn-rotation 33218ms linear infinite;
}

.jupiter-container {
    height: 500px;
    width: 500px;
}

.jupiter-container>img {
    height: 75px;
    width: 75px;
    animation: jupiter-rotation 27339ms linear infinite;
}

.mars-container {
    height: 400px;
    width: 400px;
}

.mars-container>img {
    height: 35px;
    width: 35px;
    animation: mars-rotation 12684ms linear infinite;
}

.earth-container {
    height: 350px;
    width: 350px;
}

.earth-container>img {
    height: 30px;
    width: 30px;
    animation: earth-rotation 11079ms linear infinite;
}

.venus-container {
    height: 300px;
    width: 300px;
}

.venus-container>img {
    height: 20px;
    width: 20px;
    animation: venus-rotation 7259ms linear infinite;
}

.mercury-container {
    height: 250px;
    width: 250px;
}

.mercury-container>img {
    height: 15px;
    width: 15px;
    animation: mercury-rotation 5768ms linear infinite;
}

.sun-container {
    height: 200px;
    width: 200px;
    border-radius: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.sun-container>img {
    height: 310px;
    width: 310px;
}


@keyframes neptune-rotation {

    0% {
        transform: rotate(0deg) translate(425px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(425px) rotate(360deg);
    }
}

@keyframes uranus-rotation {

    0% {
        transform: rotate(0deg) translate(375px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(375px) rotate(360deg);
    }
}

@keyframes saturn-rotation {

    0% {
        transform: rotate(0deg) translate(300px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(300px) rotate(360deg);
    }
}

@keyframes jupiter-rotation {

    0% {
        transform: rotate(0deg) translate(250px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(250px) rotate(360deg);
    }
}

@keyframes mars-rotation {

    0% {
        transform: rotate(0deg) translate(200px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(200px) rotate(360deg);
    }
}

@keyframes earth-rotation {

    0% {
        transform: rotate(0deg) translate(175px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(175px) rotate(360deg);
    }
}

@keyframes venus-rotation {

    0% {
        transform: rotate(0deg) translate(150px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(150px) rotate(360deg);
    }
}


@keyframes mercury-rotation {

    0% {
        transform: rotate(0deg) translate(125px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(125px) rotate(360deg);
    }
}

实现思路拆分

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

这段代码是设置全局样式,包括设置元素的盒模型为border-box,即盒模型的宽度和高度包括内容、内边距、边框和外边距。

body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-image: url(img/space-background.jpg)
}

这段代码是设置整个页面的样式,包括设置页面的高度为100vh,即视口的高度,使页面填充整个屏幕。同时,设置页面的背景图片为space-background.jpg。

.wrapper {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

这段代码是设置一个容器的样式,包括设置容器的高度和宽度为100%,使容器填充整个屏幕。同时,设置容器的显示方式为flex,使容器中的元素可以自动排列。

.wrapper div {
  position: absolute;
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid white;
  position: absolute;
}

这段代码是设置太阳系中的行星的样式,包括设置行星的位置为绝对定位,使其相对于容器的位置进行定位。同时,设置行星的圆角半径为100%,使其变成一个圆形。设置行星的显示方式为flex,使其中的元素可以自动排列。设置行星的边框为1px solid white,使其看起来像一个白色的圆形。

.neptune-container {
  height: 850px;
  width: 850px;
}

.neptune-container>img {
  height: 50px;
  width: 50px;
  animation: neptune-rotation 53954ms linear infinite;
}

这段代码是设置尼普斯星的样式,包括设置行星的高度和宽度为850px,使其变成一个圆形。同时,设置行星的动画效果为neptune-rotation,即使用CSS动画实现行星的旋转效果。

.uranus-container {
  height: 750px;
  width: 750px;
}

.uranus-container>img {
  height: 75px;
  width: 75px;
  animation: uranus-rotation 37054ms linear infinite;
}

这段代码是设置乌拉斯星的样式,包括设置行星的高度和宽度为750px,使其变成一个圆形。同时,设置行星的动画效果为uranus-rotation,即使用CSS动画实现行星的旋转效果。

.saturn-container {
  height: 600px;
  width: 600px;
}

.saturn-container>img {
  height: 75px;
  width: 75px;
  animation: saturn-rotation 33218ms linear infinite;
}

这段代码是设置土星的样式,包括设置行星的高度和宽度为600px,使其变成一个圆形。同时,设置行星的动画效果为saturn-rotation,即使用CSS动画实现行星的旋转效果。

.jupiter-container {
  height: 500px;
  width: 500px;
}

.jupiter-container>img {
  height: 75px;
  width: 75px;
  animation: jupiter-rotation 27339ms linear infinite;
}

这段代码是设置木星的样式,包括设置行星的高度和宽度为500px,使其变成一个圆形。同时,设置行星的动画效果为jupiter-rotation,即使用CSS动画实现行星的旋转效果。

.mars-container {
  height: 400px;
  width: 400px;
}

这段代码是设置火星的样式,包括设置行星的高度和宽度为400px,使其变成一个圆形。

.mars-container>img {
  height: 35px;
  width: 35px;
  animation: mars-rotation 12684ms linear infinite;
}

这段代码是设置火星的图片样式,包括设置图片的高度和宽度为35px,使其变成一个圆形。同时,设置图片的动画效果为mars-rotation,即使用CSS动画实现行星的旋转效果。

.earth-container {
  height: 350px;
  width: 350px;
}

这段代码是设置地球的样式,包括设置行星的高度和宽度为350px,使其变成一个圆形。

.earth-container>img {
  height: 30px;
  width: 30px;
  animation: earth-rotation 11079ms linear infinite;
}

这段代码是设置地球的图片样式,包括设置图片的高度和宽度为30px,使其变成一个圆形。同时,设置图片的动画效果为earth-rotation,即使用CSS动画实现行星的旋转效果。

.venus-container {
  height: 300px;
  width: 300px;
}

这段代码是设置金星的样式,包括设置行星的高度和宽度为300px,使其变成一个圆形。

.venus-container>img {
  height: 20px;
  width: 20px;
  animation: venus-rotation 7259ms linear infinite;
}

这段代码是设置金星的图片样式,包括设置图片的高度和宽度为20px,使其变成一个圆形。同时,设置图片的动画效果为venus-rotation,即使用CSS动画实现行星的旋转效果。

.mercury-container {
  height: 250px;
  width: 250px;
}

这段代码是设置水星的样式,包括设置行星的高度和宽度为250px,使其变成一个圆形。

.mercury-container>img {
  height: 15px;
  width: 15px;
  animation: mercury-rotation 5768ms linear infinite;
}

这段代码是设置水星的图片样式,包括设置图片的高度和宽度为15px,使其变成一个圆形。同时,设置图片的动画效果为mercury-rotation,即使用CSS动画实现行星的旋转效果。

.sun-container {
  height: 200px;
  width: 200px;
  border-radius: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

这段代码是设置太阳的样式,包括设置行星的高度和宽度为200px,使其变成一个圆形。同时,设置行星的圆角半径为100%,使其变成一个圆形。设置行星的显示方式为flex,使其中的元素可以自动排列。设置行星的居中方式为居中对齐,使其在容器中居中显示。

.sun-container>img {
  height: 310px;
  width: 310px;
}

这段代码是设置太阳的图片样式,包括设置图片的高度和宽度为310px,使其变成一个圆形。

@keyframes neptune-rotation {

  0% {
    transform: rotate(0deg) translate(425px) rotate(0deg);
  }

  100% {
    transform: rotate(360deg) translate(425px) rotate(360deg);
  }
}

这段代码是定义了一个名为neptune-rotation的CSS动画,用于实现尼普斯星的旋转动画。该动画包含两个关键帧,分别为0%和100%。在0%时,尼普斯星的旋转角度为0度,并向右移动425px。在100%时,尼普斯星的旋转角度为360度,并向右移动425px。

@keyframes uranus-rotation {

  0% {
    transform: rotate(0deg) translate(375px) rotate(0deg);
  }

  100% {
    transform: rotate(360deg) translate(375px) rotate(360deg);
  }
}

这段代码是定义了一个名为uranus-rotation的CSS动画,用于实现乌拉斯星的旋转动画。该动画包含两个关键帧,分别为0%和100%。在0%时,乌拉斯星的旋转角度为0度,并向右移动375px。在100%时,乌拉斯星的旋转角度为360度,并向右移动375px。

@keyframes saturn-rotation {

  0% {
    transform: rotate(0deg) translate(300px) rotate(0deg);
  }

  100% {
    transform: rotate(360deg) translate(300px) rotate(360deg);
  }
}

这段代码是定义了一个名为saturn-rotation的CSS动画,用于实现土星的旋转动画。该动画包含两个关键帧,分别为0%和100%。在0%时,土星的旋转角度为0度,并向右移动300px。在100%时,土星的旋转角度为360度,并向右移动300px。

@keyframes jupiter-rotation {

  0% {
    transform: rotate(0deg) translate(250px) rotate(0deg);
  }

  100% {
    transform: rotate(360deg) translate(250px) rotate(360deg);
  }
}

这段代码是定义了一个名为jupiter-rotation的CSS动画,用于实现木星的旋转动画。该动画包含两个关键帧,分别为0%和100%。在0%时,木星的旋转角度为0度,并向右移动250px。在100%时,木星的旋转角度为360度,并向右移动250px。

@keyframes mars-rotation {

  0% {
    transform: rotate(0deg) translate(200px) rotate(0deg);
  }

  100% {
    transform: rotate(360deg) translate(200px) rotate(360deg);
  }
}

这段代码是定义了一个名为mars-rotation的CSS动画,用于实现火星的旋转动画。该动画包含两个关键帧,分别为0%和100%。在0%时,火星的旋转角度为0度,并向右移动200px。在100%时,火星的旋转角度为360度,并向右移动200px。

@keyframes earth-rotation {

  0% {
    transform: rotate(0deg) translate(175px) rotate(0deg);
  }

  100% {
    transform: rotate(360deg) translate(175px) rotate(360deg);
  }
}

这段代码是设置地球的动画效果,包括设置动画的名称为earth-rotation,即使用CSS动画实现地球的旋转效果。在0%时,将地球的位置设置为0deg,并将其向右移动175px。在100%时,将地球的位置设置为360deg,并将其向右移动175px。

@keyframes venus-rotation {

  0% {
    transform: rotate(0deg) translate(150px) rotate(0deg);
  }

  100% {
    transform: rotate(360deg) translate(150px) rotate(360deg);
  }
}

这段代码是设置金星的动画效果,包括设置动画的名称为venus-rotation,即使用CSS动画实现金星的旋转效果。在0%时,将金星的位置设置为0deg,并将其向右移动150px。在100%时,将金星的位置设置为360deg,并将其向右移动150px。

@keyframes mercury-rotation {

  0% {
    transform: rotate(0deg) translate(125px) rotate(0deg);
  }

  100% {
    transform: rotate(360deg) translate(125px) rotate(360deg);
  }
}

这段代码是设置水星的动画效果,包括设置动画的名称为mercury-rotation,即使用CSS动画实现水星的旋转效果。在0%时,将水星的位置设置为0deg,并将其向右移动125px。在100%时,将水星的位置设置为360deg,并将其向右移动125px。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1382208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙开发-UI-组件-状态管理

鸿蒙开发-序言 鸿蒙开发-工具 鸿蒙开发-初体验 鸿蒙开发-运行机制 鸿蒙开发-运行机制-Stage模型 鸿蒙开发-UI 鸿蒙开发-UI-组件 文章目录 前言 一、什么是状态管理 二、管理组件拥有的状态 1.组件内状态 State装饰器 2.父子组价单向同步 Prop装饰器 3.父子双向同步 Link装…

Gitlab中的CICD的使用方法

一、CI/CD执行机制 二、离线安装gitlab-runner 下载相应版本的gitlab-runner &#xff08;下载地址&#xff1a;https://packages.gitlab.com/runner/gitlab-runner&#xff09; dpkg -i gitlab-runner_12.8.0_amd64.debgitlab-runner register第3步中需要的信息可从下图所示…

mysql关于创建表的小试题

目录 例题&#xff1a; 解题思路及步骤&#xff1a; 实验步骤&#xff1a; 步骤一&#xff1a;创建数据库 步骤二&#xff1a;创建表 步骤三&#xff1a;插入数据 例题&#xff1a; 1、创建一个英雄表(hero)&#xff0c;管于四大名著的主键 nam…

翻译: Streamlit从入门到精通 基础控件 一

这个关于Streamlit的教程旨在帮助数据科学家或机器学习工程师&#xff0c;他们不是网络开发者&#xff0c;也不想花费数周时间学习使用这些框架来构建网络应用程序。 1. 什么是Streamlit&#xff1f; Streamlit是一个免费且开源的框架&#xff0c;用于快速构建和共享美观的机器…

基于Go框架,Cloudreve个人免费开源网盘系统源码,支持云存储(七牛、阿里云OSS、腾讯云COS、又拍云、OneDrive)

源码介绍 在数字化时代&#xff0c;我们经常需要存储、分享大量的文件&#xff0c;如照片、视频、文档等。然而&#xff0c;许多商业网盘服务却存在限速、收费等问题&#xff0c;给用户带来诸多不便。现在&#xff0c;我们为您推荐一款免费开源的网盘系统——Cloudreve。 Clo…

【PACS Web系统】全网首发JAVA开发PACS医疗影像工作站

目录 业务分析&#xff1a; 市场前景&#xff1a; Web版相对单机版优势&#xff1a; 主干功能&#xff1a; RBAC用户权限管理、服务监控、字典维护、通知公告等基础模块&#xff1b; 手动上传Dicom文件/文件夹&#xff0c;及接收Dicom服务器的Dicom文件集功能&#xff1b…

Sqoop与其他数据采集工具的比较分析

比较Sqoop与其他数据采集工具是一个重要的话题&#xff0c;因为不同的工具在不同的情况下可能更适合。在本博客文章中&#xff0c;将深入比较Sqoop与其他数据采集工具&#xff0c;提供详细的示例代码和全面的内容&#xff0c;以帮助大家更好地了解它们之间的差异和优劣势。 Sq…

LLVM系列(1): 在微软Visual Studio下编译LLVM

参考链接&#xff1a; Getting Started with the LLVM System using Microsoft Visual Studio — LLVM 18.0.0git documentation 1.安装visualstudio&#xff0c;版本需要大于vs2019 本机环境已安装visual studio2022&#xff0c;省略 2安装Makefile&#xff0c;版本需要大…

操作系统详解(5)——信号(Signal)

系列文章&#xff1a; 操作系统详解(1)——操作系统的作用 操作系统详解(2)——异常处理(Exception) 操作系统详解(3)——进程、并发和并行 操作系统详解(4)——进程控制(fork, waitpid, sleep, execve) 文章目录 概述信号的种类Hardware EventsSoftware Events 信号的原理信号…

PostgreSQL认证考试PGCA、PGCE、PGCM

PostgreSQL认证考试PGCA、PGCE、PGCM 【重点&#xff01;重点&#xff01;重点&#xff01;】PGCA、PGCE、PGCM 直通车快速下正&#xff0c;省心省力&#xff0c;每2个月一次考试 PGCE考试通知 &#xff08;2024&#xff09; 一、考试概览 &#xff08;一&#xff09; 报名要…

【C++】wxWidgets库实现窗体程序

一、安装wxWidgets库 在Debian系统上使用wxWidgets库来创建一个基本的窗体程序&#xff0c;首先需要确保已经安装了wxWidgets相关的库和开发工具。下面是安装wxWidgets的步骤&#xff1a; 打开终端&#xff0c;使用下述命令安装wxWidgets库及其开发文件&#xff1a; sudo ap…

恒通未来-大数据传输中的WDM解决方案

DWDM的出现是光纤传输技术发展中最新的重要现象之一。本教程将介绍DWDM技术的基本原理&#xff0c;如组件、DWDM系统中使用的光放大器等。 组件和操作&#xff1a; DWDM是光传输网络中的一种核心技术。DWDM的基本组件可以根据其在系统中的位置进行分类。在发射方面&#xff0…

hardware simulation——框架搭建

目录 引子 代码风格约束 代码结构和模板 引子 前几天有人拿个word文档&#xff0c;问我怎么实现&#xff0c;概括一下就是用c实现数码管显示。 但是咱们肯定不做这么简单这么点&#xff0c;我打算做个开源的项目&#xff0c;可以一直更新底层软件库&#xff0c;和上层显示库…

在centos系统安装mqtt

在CentOS系统上安装MQTT&#xff0c;通常意味着要安装一个MQTT代理&#xff08;broker&#xff09;&#xff0c;比如Mosquitto。下面是在CentOS上安装Mosquitto的步骤&#xff1a; 添加EPEL仓库&#xff1a; 由于Mosquitto可能不在CentOS默认的Yum仓库中&#xff0c;你可能需要…

关于 setData 同步异步的问题

小程序官方文档中的回答解释: 所以大概意思就是: 1.setData在逻辑层的操作是同步&#xff0c;因此this.data中的相关数据会立即更新,比如下面的例子: const a 1 this.setData({b: a ? a : , }) console.log(that.data.b) // 1 2. setData在视图层的操作是异步&#xff0c;…

八爪鱼拉拉手

欢迎来到程序小院 八爪鱼拉拉手 玩法&#xff1a;点击鼠标左键拖动移动八爪鱼&#xff0c;当他的手很忙的时候他会很高兴&#xff0c; 不同关卡不同的八爪鱼的位置摆放&#xff0c;快去闯关吧^^。开始游戏https://www.ormcc.com/play/gameStart/248 html <div id"gam…

QuEra 10,000个物理量子位和100个逻辑量子位的量子计算机2026

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Python新年文字烟花简单代码

简单的Python新年烟花代码示例&#xff1a; import random import timedef create_firework():colors [红色, 橙色, 黄色, 绿色, 蓝色, 紫色]flashes [爆裂, 闪光, 旋转, 流星, 喷射]color random.choice(colors)flash random.choice(flashes)print(f"发射一枚{color…

综合评价 | 基于EW、EW-BP、EW-ELM的地区发展水平综合评价(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 综合评价 | 基于EW、EW-BP、EW-ELM的地区发展水平综合评价&#xff08;Matlab&#xff09; 程序设计 完整程序和数据获取方式&#xff1a;私信博主回复基于EW、EW-BP、EW-ELM的地区发展水平综合评价&#xff08;Matl…

最新域名群站开源系统:打造强大网站矩阵,引领SEO优化新潮流!

搭建步骤 第一步&#xff1a;安装PHP和MYSQL服务器环境 对于想要深入了解网站建设的人来说&#xff0c;自己动手安装PHP和MYSQL服务器环境是必不可少的步骤。这将使你能够更好地理解网站的运行机制&#xff0c;同时为后续的网站开发和优化打下坚实基础。 第二步&#xff1a;…