<div>
<canvas id="canvas" width="500" height="500"></canvas>
</div>
function draw(){
var canvas = document.getElementById("canvas");
if (!canvas.getContext) return;
var ctx = canvas.getContext("2d");
ctx.fillStyle="black";
ctx.fillRect(10,10,580,580);
ctx.save(); //绘制太阳
ctx.translate(250,250);
ctx.beginPath();
ctx.fillStyle="red";
ctx.arc(0,0,50,0,2*Math.PI);
ctx.fill(); //绘制地球轨道
ctx.beginPath();
ctx.strokeStyle="yellow";
ctx.arc(0,0,120,0,2*Math.PI);
ctx.stroke(); let time = new Date();
//绘制地球
ctx.rotate(2 * Math.PI / 60 * time.getSeconds() + 2 * Math.PI / 60000 * time.getMilliseconds());
ctx.translate(120,0);
ctx.beginPath();
ctx.fillStyle="blue";
ctx.arc(0,0,10,0,2*Math.PI);
ctx.fill(); //绘制月球轨道
ctx.beginPath();
ctx.strokeStyle="gray";
ctx.arc(0,0,30,0,2*Math.PI);
ctx.stroke(); //绘制月球
ctx.rotate(2 * Math.PI / 6 * time.getSeconds() + 2 * Math.PI / 6000 * time.getMilliseconds());
ctx.translate(30,0);
ctx.beginPath();
ctx.fillStyle="lightblue";
ctx.arc(0,0,5,0,2*Math.PI);
ctx.fill(); ctx.restore();
requestAnimationFrame(draw);//告诉浏览器您希望执行动画并请求浏览器在下一次重绘之前调用指定的函数来更新动画,该方法使用一个回调函数作为参数,这个回调函数会在浏览器重绘之前调用。
}
draw();

截图:

canvas动画---- 太阳、地球、月球的更多相关文章

  1. Canvas动画:地球绕着太阳转

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  2. canvas动画简单操作

    canvas动画 小球滚动效果 关键api: window.requestAnimationFrame(draw) 会递归调用draw函数,替代setInterval var x = 20; var ...

  3. 16个富有创意的HTML5 Canvas动画特效集合

    HTML5技术正在不断的发展和更新,越来越多的开发者也正在加入HTML5阵营,甚至在移动开发上HTML5的地位也是越来越重要了.HTML5中的大部分动画都是通过Canvas实现,因为Canvas就像一 ...

  4. 16个非常有趣的HTML5 Canvas动画特效集合

    HTML5技术正在不断的发展和更新,越来越多的开发者也正在加入HTML5阵营,甚至在移动开发上HTML5的地位也是越来越重要了.HTML5中的大部分动画都是通过Canvas实现,因为Canvas就像一 ...

  5. 2015.4.23 贪吃蛇、canvas动画,各种上传工具,url信息匹配以及最全前端面试题等

    1.面向对象贪吃蛇   2.css中:hover 改变图片 页面加载完 第一次鼠标移入会闪一下 这是为啥? 解决方法:你把两张图合成一张图或者是先把图片加载到页面上,然后再hover出来. 解析:图片 ...

  6. HTML动画分类 HTML5动画 SVG库 SVG工具 Canvas动画工具

     1.js配合传统css属性控制,可以使用setTimeout或者高级的requestAnimationFrame 2.css3 3.svg 4.canvas(当然,这个还是要配合js)   也许这么 ...

  7. 7 个顶级的 HTML5 Canvas 动画赏析

    HTML5确实是一项改革浏览器乃至整个软件行业的新技术,它可以帮助我们Web开发者很方便地在网页上实现动画特效,而无需臃肿的Flash作为支撑.本文分享7个顶级的HTML5 Canvas 动画,都有非 ...

  8. 8个经典炫酷的HTML5 Canvas动画欣赏

    HTML5非常强大,尤其是Canvas技术的应用,让HTML5几乎可以完成所有Flash能完成的效果.本文精选了8个经典炫酷的HTML5 Canvas动画欣赏,每一个都提供全部的源代码,希望对你有所帮 ...

  9. 7个惊艳的HTML5 Canvas动画效果及源码

    HTML5非常强大,尤其是现在大部分浏览器都支持HTML5和CSS3,用HTML5制作的动画也多了起来.另外,Canvas上绘制图形非常简单,本文就分享了一些强大的HTML5 Cnavas动画,一起来 ...

随机推荐

  1. 【Python爬虫实战】多线程爬虫---糗事百科段子爬取

    多线程爬虫:即程序中的某些程序段并行执行,合理地设置多线程,可以让爬虫效率更高糗事百科段子普通爬虫和多线程爬虫分析该网址链接得出:https://www.qiushibaike.com/8hr/pag ...

  2. <Linux> Ubuntu error: ssh: connect to host master port 22: No route to host lost connection

    iptables当找到匹配的规则时,就会执行相应的动作,而不会向下继续匹配.因为ssh端口开放的规则在all规则之后,所以永远都不会匹配到,也就是ssh永远被禁止. root下执行:iptables  ...

  3. ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python)

    ROS学习手记 - 2.1: Create and Build ROS Package 生成包(Python) 时隔1年,再回来总结这个问题,因为它是ros+python开发中,太常用的一个操作,需要 ...

  4. http://www.cnblogs.com/hanshuhe/archive/2012/08/30/vss.html

    http://www.cnblogs.com/hanshuhe/archive/2012/08/30/vss.html

  5. 读取文件 读取项目里面的json

    ClassPathResource resource = new ClassPathResource("properties/post2LazadaTest.json"); Fil ...

  6. node.js定时任务 node-schedule

    先安装 node-schedule npm install node-schedule //1:确定时间 //例如:2014年2月14日,15:40执行 var schedule = require( ...

  7. JAVA企业级快速开发平台,JEECG 3.7.3 新春版本发布

    JEECG 3.7.3新春版本发布 -  微云快速开发平台 导读           ⊙精美Echart报表 ⊙二维码生成功能 ⊙Online接口改造采用JWT机制 ⊙智能菜单搜索 ⊙代码生成器模板优 ...

  8. jeecg好用吗,看看大家的评价

    大家都会有个疑问,jeecg好用吗? 看看大家的评价

  9. mysqldump备份时保持数据一致性

    对MySQL数据进行备份,常见的方式如以下三种,可能有很多人对备份时数据一致性并不清楚 1.直接拷贝整个数据目录下的所有文件到新的机器.优点是简单.快速,只需要拷贝:缺点也很明显,在整个备份过程中新机 ...

  10. 递归获取包下的class文件

    ```java(这个居然隐藏不了) public class TestUrl { public static void main(String[] args) { String pageName = ...