1、帧频动画
(1)定义帧频
基本语法
var 帧频名称 = window.requestAnimationFrame(回调函数);
参数
返回值
返回一个long整数值,即请求ID,用于唯一标识回调列表中的条目。
功能
该window.requestAnimationFrame()方法告诉浏览器您希望执行动画,并请求浏览器调用指定的函数以在下次重绘之前更新动画。该方法将回调作为在重绘之前调用的参数。回调次数通常为每秒60次。(页面重绘:浏览器行为,页面的显示外观一旦发生变更,就会将页面的显示内容重新绘制一遍)
优点
浏览器可以优化并行的动画动作,更合理的重新排列动作序列,并把能够合并的动作放在一个渲染周期内完成,从而呈现出更流畅的动画效果。
(2)关闭帧频
基本语法
window.cancelAnimationFrame(帧频名称);
功能
代码
<!DOCTYPE html>
<html>
<head>
<title>帧频动画</title>
<meta charset="utf-8" />
<script type="text/javascript">
var num = 0;
var a = null;
function start(){
num++;
document.getElementById("div1").innerText=num;
a = window.requestAnimationFrame(start);
}
function stop(){
window.cancelAnimationFrame(a);
}
</script>
</head>
<body>
<div id="div1">0</div>
<br/><br/>
<input type="submit" value="开始" onclick="start()"/>
<input type="reset" value="停止" onclick="stop()"/>
</body>
</html>
代码讲解
1、定义帧频变量 和 数字变量
var num = 0; 定义数字变量
var raf = null; 定义帧频变量
2、设置帧频
function start(){
num++;
document.getElementById(“div1”).innerText=num;
raf = window.requestAnimationFrame(start);
}
num++; 数字累加
document.getElementById(“div1”).innerText=num; 将数字输出在id为div1的标签中
raf = window.requestAnimationFrame(start); 定义帧频并执行
3、关闭帧频
function stop(){
window.cancelAnimationFrame(raf);
}
window.cancelAnimationFrame(raf); 关闭名为raf的帧频
2、定时器动画
(1)定义定时器
基本语法
window.setTimeout(要执行的代码, 等待的毫秒数);
window.setTimeout(JavaScript 函数, 等待的毫秒数);
功能
(2)清除定时器
基本语法
功能
代码
<!DOCTYPE html>
<html>
<head>
<title>帧频动画</title>
<meta charset="utf-8" />
<script type="text/javascript">
var num = 0;
var a = null;
function start(){
num++;
document.getElementById("div1").innerText=num;
a = window.setTimeout(start,10); //(函数名,毫秒)
}
function stop(){
window.clearTimeout(a); //清除定时器
}
</script>
</head>
<body>
<div id="div1">0</div>
<br/><br/>
<input type="submit" value="开始" onclick="start()"/>
<input type="reset" value="停止" onclick="stop()"/>
</body>
</html>
代码讲解
1、定义定时器变量 和 数字变量
var num = 0; 定义数字变量
var raf = null; 定义帧频变量
2、设置定时器
function start(){
num++;
document.getElementById(“div1”).innerText=num;
raf = window.setTimeout(start);
}
num++; 数字累加
document.getElementById(“div1”).innerText=num; 将数字输出在id为div1的标签中
raf = window.setTimeout(start); 定义定时器并执行
3、清除定时器
function stop(){
window.clearTimeout(raf);
}
window.clearTimeout(raf); 清除名为raf的定时器