兼容写法:
<span class="hljs-built_in">window.requestAnimFrame = (<span class="hljs-function"><span class="hljs-keyword">function(<span class="hljs-params">) {
<span class="hljs-keyword">return <span class="hljs-built_in">window.requestAnimationFrame ||
<span class="hljs-built_in">window.webkitRequestAnimationFrame ||
<span class="hljs-built_in">window.mozRequestAnimationFrame ||
<span class="hljs-function"><span class="hljs-keyword">function(<span class="hljs-params">callback) {
<span class="hljs-built_in">window.setTimeout(callback, <span class="hljs-number">1000 / <span class="hljs-number">60); </span></span></span></span></span></span></span></span></span></span></span></span></span></span>
setTimeout(code, millseconds)
用于延时执行参数指定的代码,如果在指定的延迟时间之前,你想取消这个执行,那么直接用clearTimeout(timeoutId)
来清除任务,timeoutID
是setTimeout
时返回的;setInterval(code, millseconds)
用于每隔一段时间执行指定的代码,永无停歇,除非你反悔了,想清除它,可以使用clearInterval(intervalId)
,这样从调用 clearInterval 开始,就不会在有重复执行的任务,intervalId
是setInterval
时返回的;requestAnimationFrame(code)
,一般用于canvas动画,与setTimeout
方法类似,区别是setTimeout
是用户指定的,而requestAnimationFrame
是浏览器刷新频率决定的,一般遵循 W3C 标准,它在浏览器每次刷新页面之前执行。
requestAnimationFrame不需要使用者指定循环间隔时间,浏览器会基于当前页面是否可见、CPU的负荷情况等来自行决定最佳的帧速率,从而更合理地使用CPU。
点击开始,此时控制台一直计数下去,点击暂停,计数器暂停,再次点击开始会从原来的位置继续计数下去。
Original: https://www.cnblogs.com/libin-1/p/7712797.html
Author: 最骚的就是你
Title: canvas/CSS仪表盘效果
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/548934/
转载文章受原作者版权保护。转载请注明原作者出处!