博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js动画杂记
阅读量:5058 次
发布时间:2019-06-12

本文共 815 字,大约阅读时间需要 2 分钟。

在画布上做动画

方法有

setIntervel(function(){},time);

setTimeout(function(){},time);

新方法

window.requestAnimationFrame(function(){});

 

动画一般是执行同一个绘画函数多遍(其中每一遍执行会有一些参数不同 代表透明度的,位置的,大小的等等的参数)

这意味着要实现函数的重复执行

setInterval本身就是每隔time执行一次function,可以直接用了

而setTimeout是过了time后执行一次function,也就是只执行一次

而window.requestAnimation是现在的新方法,我目前不是很了解它的意思,但是同样只执行一次

之前对于如何实现重复绘画,我百思不得其解,

现在想来真是太傻了...

 

setTimeout 和 window.requestAnimation是一样的,

直接调用函数,然后在函数末尾调用setTimeout 或window.requestAnimation  

 

那么问题又来了,重复动画如何取消呢?

使用方法前先取个名字

var ID = setInterval();

要结束就用下面这个

clearInerval(ID);

setTimeout 和 window.requestAnimation 也同理,它们的取消方法如下:

clearTimeout(ID);

cancelAnimationFrame(ID);

 

reverse()和save()很重要

使用方法就是所有绘画开始之前先save()
每绘画完一帧就执行一次
ctx.reverse();save()

如果改变了画布参数,画下一个图形时就要进行一次ctx.reverse();save(),或者手动把参数改回来

转载于:https://www.cnblogs.com/fy-xjw/p/9846433.html

你可能感兴趣的文章
责任链模式
查看>>
一大盒子平均分为三个盒子
查看>>
VC++2012编程演练数据结构《34》树形选择排序
查看>>
Canvas--线条的属性
查看>>
.net集合类的研究--链表—ListDictionary,LinkedList<T>
查看>>
SQLite
查看>>
6、字符串
查看>>
算法训练 出现次数最多的整数
查看>>
简单的贪吃蛇的另一种做法
查看>>
JAR打包和运行
查看>>
HTML5 基础知识(四)
查看>>
Java学习笔记之Scanner报错java.util.NoSuchElementException
查看>>
【排序】合并排序(2路归并)
查看>>
C#开机自动启动程序代码
查看>>
P2P平台的"我要借款"功能,是否需要上传借款人的相关资料
查看>>
大学生活--第5篇--物以类聚,人以群分
查看>>
网站运营的4点经验
查看>>
使用Pyramid搭建Web Server入门介绍
查看>>
剑指offer | 最小的K个数
查看>>
C++ | RAII 机制
查看>>