2019独角兽企业重金招聘Python工程师标准>>>

做一个太阳系八大行星的运转动画,不包括行星的卫星,所有行星围绕太阳公转,行星采用纯色,暂时没有自转。

效果静态图:

动画中包括:太阳及各行星,运行轨道,行星公转动画。

先画好草图,设计好大小和位置,根据公转周期计算好动画执行的时间。

html的结构:

一个class为solarsys的div,作为太阳系容器元素,该div的position为relative。

行星轨道和行星都用div,position为absolute。

容器用relative和内部元素采用absolute的定位方式,比较简单的能实现效果,缺点就是大小是固定的。

   <div class="solarsys"><!--太阳--><div class='sun'></div><!--水星轨道--><div class='mercuryOrbit'></div><!--水星--><div class='mercury'></div><!--金星轨道--><div class='venusOrbit'></div><!--金星--><div class='venus'></div><!--地球轨道--><div class='earthOrbit'></div><!--地球--><div class='earth'></div><!--火星轨道--><div class='marsOrbit'></div><!--火星--><div class='mars'></div><!--木星轨道--><div class='jupiterOrbit'></div><!--木星--><div class='jupiter'></div><!--土星轨道--><div class='saturnOrbit'></div><!--土星--><div class='saturn'></div><!--天王星轨道--><div class='uranusOrbit'></div><!--天王星--><div class='uranus'></div><!--海王星轨道--><div class='neptuneOrbit'></div><!--海王星--><div class='neptune'></div></div>

太阳系容器div的css:

定宽,定高,relative定位,页面内剧中对齐。

    .solarsys{width: 800px;height: 800px;;position: relative;margin: 0 auto;background-color: #000000;padding: 0;transform: scale(1);}

太阳div的css:

按照设计的大小和位置,设定宽高,left,top。

设定颜色。

通过把boder-radius生成50%,把一个正方形变成圆形。

通过box-shadow的4层颜色设置实现太阳光晕。

    .sun {left:357px;top:357px;height: 90px;width: 90px;background-color: rgb(248,107,35);border-radius: 50%;box-shadow: 5px 5px 10px rgb(248,107,35), -5px -5px 10px rgb(248,107,35), 5px -5px 10px rgb(248,107,35), -5px 5px 10px rgb(248,107,35);position: absolute;margin: 0;}

行星轨道div的css:

假设是水星轨道。

按照设计的大小和位置,设定宽高,left,top。

背景色透明。

通过把boder-radius生成50%,把一个正方形变成圆形。

boder的类型设成虚线。

boder的颜色设成灰色。

宽度设1。

复制代码
.mercuryOrbit {
left:342.5px;
top:342.5px;
height: 115px;
width: 115px;
background-color: transparent;
border-radius: 50%;
border-style: dashed;
border-color: gray;
position: absolute;
border-width: 1px;
margin: 0px;
padding: 0px;
}

行星div的css:

假设是水星。

按照设计的大小和位置,设定宽高,left,top。

设置颜色。

通过把boder-radius生成50%,把一个正方形变成圆形。

将transfrom-origin设定成当前div的左上角相对于整个太阳系容器的中心点的横向和纵向的偏移量。加上旋转动画后就是围绕着中心点旋转效果。

做一个animation,引用rotate关键帧动画,线性永久执行,这里的执行时长是根据行星的公转周期计算出来。

.mercury {left:337.5px;top:395px;height: 10px;width: 10px;background-color: rgb(166,138,56);border-radius: 50%;position: absolute;transform-origin: 62.5px 5px;animation: rotate 1.5s infinite linear;
}

rotate关键帧动画:

逆时针旋转。

@keyframes rotate {100% {transform: rotate(-360deg);}
}

基本结构完成。

仅在chrome中测试过。

全部代码:

<html>
<head><style>.solarsys{width: 800px;height: 800px;;position: relative;margin: 0 auto;background-color: #000000;padding: 0;transform: scale(1);}/*太阳*/.sun {left:357px;top:357px;height: 90px;width: 90px;background-color: rgb(248,107,35);border-radius: 50%;box-shadow: 5px 5px 10px rgb(248,107,35), -5px -5px 10px rgb(248,107,35), 5px -5px 10px rgb(248,107,35), -5px 5px 10px rgb(248,107,35);position: absolute;margin: 0;}/*水星*/.mercury {left:337.5px;top:395px;height: 10px;width: 10px;background-color: rgb(166,138,56);border-radius: 50%;position: absolute;transform-origin: 62.5px 5px;animation: rotate 1.5s infinite linear;}/*水星轨道*/.mercuryOrbit {left:342.5px;top:342.5px;height: 115px;width: 115px;background-color: transparent;border-radius: 50%;border-style: dashed;border-color: gray;position: absolute;border-width: 1px;margin: 0px;padding: 0px;}/*金星*/.venus {left:309px;top:389px;height: 22px;width: 22px;background-color: rgb(246,157,97);border-radius: 50%;position: absolute;transform-origin: 91px 11px;animation: rotate 3.84s infinite linear;}/*金星轨道*/.venusOrbit {left:320px;top:320px;height: 160px;width: 160px;background-color: transparent;border-radius: 50%;border-style: dashed;border-color: gray;position: absolute;border-width: 1px;/*margin: 100px;*//*transform-origin: -75px -75px;*//*animation: rotate 4s infinite linear;*/margin: 0px;padding: 0px;}/*地球*/.earth {left:266.5px;top:391px;height: 18px;width: 18px;background-color: rgb(115,114,174);border-radius: 50%;position: absolute;transform-origin: 134px 9px;animation: rotate 6.25s infinite linear;}/*地球轨道*/.earthOrbit {left:275px;top:275px;height: 250px;width: 250px;background-color: transparent;border-radius: 50%;border-style: dashed;border-color: gray;position: absolute;border-width: 1px;/*margin: 100px;*//*transform-origin: -75px -75px;*//*animation: rotate 4s infinite linear;*/margin: 0px;padding: 0px;}/*火星*/.mars {left:222.5px;top:392.5px;height: 15px;width: 15px;background-color: rgb(140,119,63);border-radius: 50%;position: absolute;transform-origin: 177.5px 7.5px;animation: rotate 11.75s infinite linear;}/*火星轨道*/.marsOrbit {left:230px;top:230px;height: 340px;width: 340px;background-color: transparent;border-radius: 50%;border-style: dashed;border-color: gray;position: absolute;border-width: 1px;/*margin: 100px;*//*transform-origin: -75px -75px;*//*animation: rotate 4s infinite linear;*/margin: 0px;padding: 0px;}/*木星*/.jupiter {left:134px;top:379px;height: 42px;width: 42px;background-color: rgb(156,164,143);border-radius: 50%;position: absolute;transform-origin: 266px 21px;animation: rotate 74.04s infinite linear;}/*木星轨道*/.jupiterOrbit {left:155px;top:155px;height: 490px;width: 490px;background-color: transparent;border-radius: 50%;border-style: dashed;border-color: gray;position: absolute;border-width: 1px;/*margin: 100px;*//*transform-origin: -75px -75px;*//*animation: rotate 4s infinite linear;*/margin: 0px;padding: 0px;}/*土星*/.saturn {left:92px;top:387px;height: 26px;width: 26px;background-color: rgb(215,171,68);border-radius: 50%;position: absolute;transform-origin: 308px 13px;animation: rotate 183.92s infinite linear;}/*土星轨道*/.saturnOrbit {left:105px;top:105px;height: 590px;width: 590px;background-color: transparent;border-radius: 50%;border-style: dashed;border-color: gray;position: absolute;border-width: 1px;/*margin: 100px;*//*transform-origin: -75px -75px;*//*animation: rotate 4s infinite linear;*/margin: 0px;padding: 0px;}/*天王星*/.uranus {left:41.5px;top:386.5px;height: 27px;width: 27px;background-color: rgb(164,192,206);border-radius: 50%;position: absolute;transform-origin: 358.5px 13.5px;animation: rotate 524.46s infinite linear;}/*天王星轨道*/.uranusOrbit {left:55px;top:55px;height: 690px;width: 690px;background-color: transparent;border-radius: 50%;border-style: dashed;border-color: gray;position: absolute;border-width: 1px;/*margin: 100px;*//*transform-origin: -75px -75px;*//*animation: rotate 4s infinite linear;*/margin: 0px;padding: 0px;}/*海王星*/.neptune {left:10px;top:390px;height: 20px;width: 20px;background-color: rgb(133,136,180);border-radius: 50%;position: absolute;transform-origin: 390px 10px;animation: rotate 1028.76s infinite linear;}/*海王星轨道*/.neptuneOrbit {left:20px;top:20px;height: 760px;width: 760px;background-color: transparent;border-radius: 50%;border-style: dashed;border-color: gray;position: absolute;border-width: 1px;/*margin: 100px;*//*transform-origin: -75px -75px;*//*animation: rotate 4s infinite linear;*/margin: 0px;padding: 0px;}@keyframes rotate {100% {transform: rotate(-360deg);}}</style></head><body><div class="solarsys"><!--太阳--><div class='sun'></div><!--水星轨道--><div class='mercuryOrbit'></div><!--水星--><div class='mercury'></div><!--金星轨道--><div class='venusOrbit'></div><!--金星--><div class='venus'></div><!--地球轨道--><div class='earthOrbit'></div><!--地球--><div class='earth'></div><!--火星轨道--><div class='marsOrbit'></div><!--火星--><div class='mars'></div><!--木星轨道--><div class='jupiterOrbit'></div><!--木星--><div class='jupiter'></div><!--土星轨道--><div class='saturnOrbit'></div><!--土星--><div class='saturn'></div><!--天王星轨道--><div class='uranusOrbit'></div><!--天王星--><div class='uranus'></div><!--海王星轨道--><div class='neptuneOrbit'></div><!--海王星-->

登录乐搏学院官网http://www.learnbo.com/

或关注我们的官方微博微信,还有更多惊喜哦~

作者: 忘川3378524

转载于:https://my.oschina.net/learnbo/blog/870731

用html+ccs3就能 做出一个太阳系行星相关推荐

  1. Python 用Ursina 3D引擎做一个太阳系行星模拟器

    这次,我们再来用Ursina引擎来做一个太阳系行星模拟器吧! 想要了解Ursina 3D引擎的基本使用方法的话,查看我的另一篇文章: 手把手教你用Python编一个<我的世界> 1. 认识 ...

  2. 使用css3的动画模拟太阳系行星公转

    本文介绍使用css3的animation画一个太阳系行星公转的动画,再加以改进,讨论如何画椭圆的运行轨迹.然后分析京东和人人网使用animation的实际案例,最后结合css3的clip-path做一 ...

  3. css3运动后留下轨迹尾巴_巧妙利用CSS3实现太阳系行星公转运动轨迹

    巧妙利用CSS3实现太阳系行星公转运动轨迹 前段时间在博客园看到一篇很不错的文章,就是介绍如何用CSS3来实现太阳系中行星的运动.本小姐处于好奇心从头到完整的看完了.突然发现好奇不仅仅害死猫,也可以增 ...

  4. 巧妙利用CSS3实现太阳系行星公转运动轨迹

    前段时间在博客园看到一篇很不错的文章,就是介绍如何用CSS3来实现太阳系中行星的运动.本×××处于好奇心从头到完整的看完了.突然发现好奇不仅仅害死猫,也可以增长知识嘛(你这是什么谬论!!!).也许有的 ...

  5. html里c3动画是什么,h5和c3怎样做出太阳系行星运转的动画效果

    这次给大家带来h5和c3怎样做出太阳系行星运转的动画效果,用h5和c3做出太阳系行星运转动画效果的注意事项有哪些,下面就是实战案例,一起来看一下. 做一个太阳系八大行星的运转动画,不包括行星的卫星,所 ...

  6. 指纹识别 python实现_Python语言之指纹识别是目前最成熟的识别技术!Python能分分钟做出一个来!...

    本文主要向大家介绍了Python语言之指纹识别是目前最成熟的识别技术!Python能分分钟做出一个来!,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 下面带大家做一个自己的指纹识 ...

  7. Unity做一个太阳系

    Unity做一个太阳系(适合初学者学习) 步骤 1.新建Unity项目(我用的unity2019) 2.在assets中建script文件夹,material文件夹. 2.创造9个sphere物体:太 ...

  8. videos player.php_vue-video-player做出一个自定义播放器

    这次给大家带来vue-video-player做出一个自定义播放器,vue-video-player做出自定义播放器的注意事项有哪些,下面就是实战案例,一起来看一下. 图1--显示侧边栏 图2-收起侧 ...

  9. C#中使用MenuStrip做出一个简单的记事本程序

    1. MenuStrip菜单栏控件 主要属性和事件 属性 说明 Name 代码中菜单对象的名称 Items 在菜单中显示的 Text 与菜单项关联的文本 DropDownItems 在子菜单中显示项的 ...

最新文章

  1. 字节流与字符流的区别(good!)
  2. 2022年十大卫星技术创新及发展趋势
  3. 英国拟在其国内建立一套互联网过滤网
  4. 苹果手机at系统_iOS14系统苹果手机如何设置充满电提示音?
  5. 【视频课】言有三每天答疑,38课深度学习+超60小时分类检测分割数据算法+超15个Pytorch框架使用与实践案例助你攻略CV...
  6. yunyang tensorflow-yolov3 启动evaluate.py报错:Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED原因
  7. POJ 2516 -- Minimum Cost (最小费用最大流, 必须分开建图)
  8. select下拉option跳转页面
  9. @property的必要性
  10. 大二下学期软件工程概论总结
  11. 看呆了!日本男粉丝凭瞳孔倒影找到偶像住所 实施猥亵...
  12. js代码在调试状态执行正确,但是正常使用时没有反应
  13. linux shell中各种分号和括号,Linux Shell中各种分号和括号#的用法总结
  14. python爬虫--爬取小猪网的租房信息
  15. 【C++】多态/虚函数/虚表指针,虚表
  16. 用当下的力量共创未来——2017(第十五届)中国互联网经济论坛盛典
  17. 程序员写在猝死的前一天
  18. 运营人必备工具,收藏帖
  19. PYthon 获取快捷方式(Lnk文件)指向文件
  20. 45.常用的数学工具类2-三角函数的使用

热门文章

  1. SQL Server Guid和NEWSEQUENTIALID函数
  2. 关于联通短信发送程序(SGIP协议)没有收到返回状态报告的报告(使用WireShark分析)
  3. Adobe Flash Builder 4.6 开发环境详解
  4. 图解SQL Server 存储过程教程一
  5. 前端工程师算法(一)
  6. JavaScript-4.2函数,变量作用域---ShinePans
  7. 【转载】C/C++中long long与__int64的区别
  8. 搜索专题【2010】四2.过河问题
  9. NodeJS中form上传附件中针对表单的multiple attribute出现的问题总结
  10. linux内核学习之三:linux中的32位与64位