javascript - JS - 如何提供 x 方向的平滑移动

标签 javascript jquery

我想在 x 方向上提供平滑的移动。对象 A 的速度应该是对象 B 的两倍。不知何故,A 的运动看起来不平滑。 jsfiddle

JS

var ax = bx = 0;

window.requestAnimFrame = (function(){
    return window.requestAnimationFrame       ||
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame    ||
        function( callback ){
            window.setTimeout(callback, 1000 / 60);
        };
})();



(function animloop(){
    requestAnimFrame(animloop);
    render();
})();

function render() {
    ax+=4;
    $('.A').css("left", ax);

    bx++;
    $('.B').css("left", bx);
}

最佳答案

使其更平滑的一种方法是花费自上次渲染以来的时间:

var ax = bx = 0,
    start;

window.requestAnimFrame = (function () {
    return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {
        window.setTimeout(callback, 1000 / 60);
    };
})();



(function animloop(timestamp) {
    if (!start) {
        start = timestamp;
    }
    var progress = timestamp - start;

    requestAnimFrame(animloop);
    render(progress);
})();

function render(progress) {
    $('.A').css("left", progress / 4);

    bx++;
    $('.B').css("left", progress / 16);

}

http://jsfiddle.net/b3v8kp7j/2/

关于javascript - JS - 如何提供 x 方向的平滑移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28075111/

相关文章:

javascript 调试工具 :firebug, chrome javascript 控制面板, Visual Studio for javascript

javascript - 无法在 html 中播放视频

javascript - 调用ajax加载的函数

javascript - 在文档中添加新元素后,jQuery 显示不起作用

Jquery .load 同源策略

javascript - 如何将两个 d3 对象合并为一个以进行批量操作

javascript - 检查输入是否有文本并启用按钮

javascript - 使用多个三元运算符替换字符串的多个字符

jquery - 如何使用jquery查找表中行的索引

javascript - 使用 Chrome 的 Element Inspector 跟踪事件监听器的添加位置