javascript - 请问如何让 转盘 缓动加速到最高速度后,继续保持最高速度的 恒速 循环旋转呢?
天蓬老师
天蓬老师 2017-04-11 08:58:16
[JavaScript讨论组]
  1. 请问如何让 转盘 缓动加速到最高速度后,继续保持最高速度的 恒速 循环旋转?

  2. 并在 5秒后 才缓动减速,直到停止呢?

P.S:就相当于汽车从0加速到120,然后持续了5秒,再降到0的过程,不使用css3实现。

这里是示例地址,谢谢!
http://jsbin.com/yeholemexe/e...
demo

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
天蓬老师
   var deg = 0
    var sTime = Date.now()
    var duration = 1000
    var p = 0
    var speed = 0
    var maxSpeed = 15
    var stopDeg = null
    var canvas = document.querySelector('.dial')

    setTimeout(function () {
        stopDeg  = 78
        sTime    = Date.now()
        duration = 3000
    }, 5000)

    ;
    (function loop() {
        requestAnimationFrame(function () {
            p = (Date.now() - sTime) / duration
            if (stopDeg) {
                speed = maxSpeed * (1 - p)
                if (speed <= 0) return speed = 0
            } else {
                speed = maxSpeed * p
                if (speed > maxSpeed) speed = maxSpeed
            }

            deg += speed
            canvas.style.transform = 'rotate(' + deg + 'deg) translate3d(0,0,0)'
            loop()
        })
    })()

代码有些难看,不过实现了

黄舟

css动画 ease-in-out 就有个加速 减速过程啊

高洛峰

谢邀。来晚了。顺手赞个。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号