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

如果你想做逐帧动画的时候,你应该用这个方法。这就要求你的动画函数执行会先于浏览器重绘动作。通常来说,被调用的频率是每秒60次,但是一般会遵循W3C标准规定的频率。如果是后台标签页面,重绘频率则会大大降低。

var canvas=document.getElementById("canvas");var ctx=canvas.getContext('2d');var running=false;
//    get requestAnimationFramefunction AFrame(callback){return window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;}var raFrame=AFrame();var raf;var ball={x:100,y:100,vx:5,vy:1,radius:25,color:'blue',draw:function(){ctx.beginPath();ctx.arc(this.x,this.y,this.radius,0,Math.PI*2,true);ctx.closePath();ctx.fillStyle=this.color;ctx.fill();}};function  clear(){ctx.fillStyle=ctx.fillStyle = 'rgba(255,255,255,0.3)';ctx.fillRect(0,0,canvas.width,canvas.height);}function draw(){
//        ctx.fillStyle = 'rgba(255,255,255,0.3)';
//        ctx.fillRect(0,0,canvas.width,canvas.height);
//      ctx.clearRect(0,0,canvas.width,canvas.height);//每次画之前清除上一次的clear();ball.draw();ball.x += ball.vx;ball.y += ball.vy;if (ball.y + ball.vy > canvas.height || ball.y + ball.vy < 0) {ball.vy = -ball.vy;}if (ball.x + ball.vx > canvas.width || ball.x + ball.vx < 0) {ball.vx = -ball.vx;}raf= raFrame(draw);console.log("运行")}canvas.addEventListener('mousemove',function(e){if(!running){clear();ball.x = e.clientX;ball.y = e.clientY;ball.draw();}
//        raf=raFrame(draw);});canvas.addEventListener("click",function(e){if (!running) {raf=raFrame(draw);running = true;}});canvas.addEventListener('mouseout',function(e){window.cancelAnimationFrame(raf);running = false;});ball.draw();

转载于:https://my.oschina.net/swmhxhs/blog/1490483

canvas requestAnimationFrame 动画相关推荐

  1. html5在线制作教程,HTML5 Canvas 制作动画

    HTML5 Canvas 制作动画 在HTML5 canvas中绘制图像动画效果,你需要绘制出每一帧的图像,然后在一个极短的时间内从一帧过渡到下一帧,形成动画效果. 在线示例 要在HTML5画布上绘制 ...

  2. 看你骨骼惊奇,这里有一套 Canvas 粒子动画方案了解一下?

    导语:在日常的开发过程中,我们会常常会用到canvas来制作一些动画特效,其中有一个动画种类,需要我们生成一定数量,形状类似且行为基本一致的粒子,通过这些粒子的运动,来展现动画效果,比如:下雨,闪烁的 ...

  3. 基于Canvas的动画基本原理与数理分析

    转载自https://www.jianshu.com/p/e70c9cfbdb38 什么是动画? 就像思考哲学问题无法回避思维和存在的关系一样,制作动画同样无法逃避的问题是动画的原理是什么?这里提一句 ...

  4. 前端canvas粒子动画背景(带鼠标跟随和点击散开)

    目录 闲聊 看下效果 先贴下代码吧 大概说一下流程 下面让我来详细说一下 1.初始化基础属性 2.添加鼠标移动事件并实时更新鼠标坐标 3.通过随机数生成粒子的坐标和横纵轴速度 4.渲染粒子并将粒子对象 ...

  5. 超炫酷canvas 龙卷风动画

    超炫酷canvas 龙卷风动画 所有代码 最后来看一下效果图 所有代码 JavaScript 代码片. function project3D(x, y, z, vars) {var p, d;x -= ...

  6. canvas粒子动画

    2019独角兽企业重金招聘Python工程师标准>>> 周末在家玩了一下canvas粒子动画,先看看效果,用的图是我们微众银行的干爹'qq',先看看效果 ##1.获取图片信息 ### ...

  7. Div层悬浮实现HTML5 Canvas背景动画

    在日常的学习中我接触到一些HTML5 Canvas动画,在开发 tiomg.org 太美在线工具网站 的时候,想将这些震撼或小清新的动画融合到工具网站中,这样可以使原本单调的网页看起来丰富和更有设计感 ...

  8. python制作简单动画_Python tkinter Canvas绘制动画

    其实前面程序中的高亮显示已经是动画效果了.程序会用红色.黄色交替显示几何图形的边框,这样看上去就是动画效果了.实现其他动画效果也是这个原理,程序只要增加一个定时器,周期性地改变界面上图形项的颜色.大小 ...

  9. html5字体动画效果,7款超华丽的HTML5 Canvas文字动画特效

    原标题:7款超华丽的HTML5 Canvas文字动画特效 文字是网页中最为常见的元素之一,当然我们使用最多的就是调整文字的颜色.大小等基本属性.有时候我们在一些活动页面上需要展示特别样式的文字效果,这 ...

最新文章

  1. 批处理,%~d0 cd %~dp0 代表什么意思
  2. eclipse juno_Eclipse Juno上带有GlassFish的JavaEE 7
  3. 私有云促进企业管理变革 助力企业快步前行
  4. centos6中office及中文输入法安装 (转载)
  5. 自建站如何通过Facebook广告引流?
  6. MSSQL手札四 MSSQL的函数
  7. UE4 编辑器模块引用,不影响打包处理
  8. PA塑料EN45545-2:2020R22 HL3防火检测的难易程度
  9. 为啥好多公司面试程序员用纸写代码?不会是因为缺少笔记本电脑吧
  10. mysql got signal 11_mysqld got signal 11问题定位
  11. 商务智能大总结4 聚类分析
  12. java list下标_Java list删除指定多个下标数据
  13. Pyramidal RoR for Image Classification
  14. Lumen 中对 Dingo API 异常接管并自定义响应结果
  15. 为大家推荐一个全新的跨平台app软件开发工具——Lae软件开发平台
  16. QML 全屏 输入法无法显示
  17. 微服务.链路追踪.OpenTracing
  18. 网易新财报:游戏养家,教育维稳、音乐快走
  19. c语言人民邮电出版社课后答案,C语言程序设计教程(人民邮电出版社) 课后习题解答6-10...
  20. 基于51单片机的鸡舍智能环境控制有害气体检测无线WiFi通信proteus仿真原理图PCB

热门文章

  1. 处理机调度实验总结_计算机系统结构总结
  2. python001 一,Python 入门技巧、Python概述及环境准备
  3. android盒子模拟器,emubox模拟器盒子
  4. 文本框换行_多行文本框的认识以及代码详解
  5. 数据结构和算法:第八章 图论算法
  6. 谷歌搜索没有相机图标_谷歌Pixel 2/3a/4 XL中招!更新安卓11相机崩溃
  7. arduino下载库出错_arduino的I2C通讯 3:驱动1602液晶屏
  8. lvs+keepalived实现双实例【双主模型】
  9. ThinkPHP模板之二
  10. ios 视频旋转---分解ZFPlayer