博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
requestAnimationFrame 兼容方案
阅读量:6784 次
发布时间:2019-06-26

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

[toc]

编写涉及:css, html, js

html代码

move

css代码

.roll-box {    position: relative;    width: 600px;    height: 400px;    background: #007acc;    overflow: hidden;    color: #fff;}.inner-box {    position: absolute;    top: 10px;    left: 0;    width: 50px;    height: 50px;    text-align: center;    line-height: 50px;    background-color: rgb(245, 152, 30);}button{    margin-top: 20px;    padding: 6px 10px;    border: 0;    color: #fff;    background-color: rgb(39, 133, 240);}

JavaScript代码

let moveCount = 0;let rafId = '';const ele = document.querySelector('.inner-box');window.requestAniFrame = (function () {    return window.requestAnimationFrame        // Older versions Chrome/Webkit        window.webkitRequestAnimationFrame ||        // Firefox < 23        window.mozRequestAnimationFrame ||        // opera        window.oRequestAnimationFrame ||        // ie        window.msRequestAnimationFrame ||        function (callback) {            return window.setTimeout(callback, 1000 / 60);        };})()window.cancelAnimation = (function () {    return window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.cancelRequestAnimationFrame || function (id) { clearTimeout(id) }})()function moveFn() {    ele.setAttribute('style', 'left:' + moveCount + 'px');    moveCount++    if (moveCount > 550) {        window.cancelAnimation(rafId)    } else {        rafId = window.requestAniFrame(moveFn)    }}function startMove() {    // 必须先清除,否者多次点击会生成多个动画帧,导致元素移动速度加快    window.cancelAnimation(rafId)    rafId = window.requestAniFrame(moveFn)}
若有疑问或错误,请留言,谢谢!

转载地址:http://oydgo.baihongyu.com/

你可能感兴趣的文章
汇编中参数的传递和堆栈修正【转载】
查看>>
web安全实践系列导航
查看>>
[Oracle]GoldenGate官方文档
查看>>
第 42 章 WMware
查看>>
动感的网页相册
查看>>
Nginx的反向代理与负载均衡
查看>>
redis之(十四)redis的主从复制的原理
查看>>
Velocity入门指南
查看>>
ntp redhat
查看>>
sum(case when status=1 then 1 else 0 end) 的意思
查看>>
Win7硬盘安装方法
查看>>
python - 列表
查看>>
UIVisualEffectView用法
查看>>
springmvc+mybatis整合cms+UC浏览器文章功能
查看>>
docker安装(centos6.5_x86_64)
查看>>
mysql悲观锁与乐观锁
查看>>
ubuntu下python2-python3版共存,创建django项目出现的问题
查看>>
2018.4.3三周第二次课
查看>>
eclipse_jee版本提供了从数据库直接生成实体类的工具!
查看>>
Error: Can't set headers after they are sent
查看>>