zoukankan      html  css  js  c++  java
  • requestAnimationFrame 实现JS动画

    requestAnimationFrame会随着浏览器绘制窗口的频率来绘制动画以达到最好的用户体验

    // let raf = (function(){
    //   return  window.requestAnimationFrame       ||
    //           window.webkitRequestAnimationFrame ||
    //           window.mozRequestAnimationFrame    ||
    //           function( callback ){
    //             window.setTimeout(callback, 1000 / 60);//每秒实现60帧的动画效果最好
    //           };
    // })();
    let raf = window.requestAnimationFrame;
    let box = document.getElementsByClassName('box')[0];
    let w = 100;
    let t = 0;
    function loop(){
        box.style.width = w + 'px';
        if(w < 500){
            w += 1;
            box.style.width = w + 'px';
    
        }
        t = raf(loop)
    }
    
    loop()
    box.addEventListener('click',()=>{//实现点击暂停动画,再次点击继续运行的效果
        if(t){
            window.cancelAnimationFrame(t);
            t = 0;
        }else{
            t = raf(loop)
        }
    })
    
  • 相关阅读:
    YOLOv5目标检测源码重磅发布了!
    CSS文本
    CSS3:透明度
    CSS3:HSL和HSLA
    颜色-背景色
    颜色-前景色
    列表 图像 链接
    CSS简介
    标记和插入音频视频
    表单
  • 原文地址:https://www.cnblogs.com/zheng-chuang/p/7235502.html
Copyright © 2011-2022 走看看