zoukankan      html  css  js  c++  java
  • requestAnimationFrame 定时器

    这个方法是通过递归调用同一方法来不断更新画面以达到动起来的效果,但它优于setTimeout/setInterval的地方在于它是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用,并且如果页面不是激活状态下的话,动画会自动暂停,有效节省了CPU开销。

    基本语法:

    requestAnimationFrame(callback)//callback为回调函数
    案例:

    模拟一个进度条动画,初始div宽度为1px,在step函数中将进度加1然后再更新到div宽度上,在进度达到100之前,一直重复这一过程。

    为了演示方便加了一个运行按钮。

    效果:

    代码:

    <div id="test" style="1px;height:17px;background:#0f0;">0%</div>
    <input type="button" value="Run" id="run"/>
    window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
    var start = null;
    var ele = document.getElementById("test");
    var progress = 0;
    
    function step(timestamp) {
        progress += 1;
        ele.style.width = progress + "%";
        ele.innerHTML=progress + "%";
        if (progress < 100) {
            requestAnimationFrame(step);
        }
    }
    requestAnimationFrame(step);
    document.getElementById("run").addEventListener("click", function() {
        ele.style.width = "1px";
        progress = 0;
        requestAnimationFrame(step);
    }, false);
    做好每一件小事。
  • 相关阅读:
    快速开发框架:进销存业务注意事项
    延时执行函数:前浪死在沙滩上
    新增筛选方案
    进销存数据库设计:采购订单
    SasS 设计原则十二因素
    四种线程池的解析
    高并发下的流量控制
    Mybatis 缓存机制
    谈谈JVM垃圾回收
    如何使错误日志更加方便地排查问题
  • 原文地址:https://www.cnblogs.com/peachGirl/p/5971033.html
Copyright © 2011-2022 走看看