请问如何让 转盘 缓动加速到最高速度后,继续保持最高速度的 恒速 循环旋转呢?

发布于 2022-09-04 04:04:31 字数 375 浏览 21 评论 0

  1. 请问如何让 转盘 缓动加速到最高速度后,继续保持最高速度的 恒速 循环旋转?

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

野稚 2022-09-11 04:04:31
   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()
        })
    })()

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

一场春暖 2022-09-11 04:04:31

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

梦萦几度 2022-09-11 04:04:31

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文