在JavaScript中计算跳跃动画

时间:2013-03-26 00:09:21

标签: javascript jquery animation geometry

我正在尝试使用3个变量为跳跃设置动画:跳跃距离,跳跃高度以及跳跃“速度”。

Here is a working JSFiddle demo。但是,我希望动画跳变成一个完美的抛物线。

var y = 300;
var x = 0;
var jh = 100;
var jw = 200;
var c = 0;

    var inter = setInterval(function () {
        c++;
        // if box reaches jump height it should fall down
        y = (c >= jh) ? y + 1 : y - 1;
        // if box reaches jump distance
        if (x == jw) clearInterval(inter);

        x++;

        $('.box').css({
            'top': y + 'px',
            'left': x + 'px'
        });

    }, 20);

1 个答案:

答案 0 :(得分:2)

我在想什么?假设jh是“跳高”并且jw是“距离”而没有清理现有代码,你可以这样做:

var y = 300;
var x = 0;
var jh = 100;
var jw = 200;
var c = 0;
var speed = 3;

var inter = setInterval(function () {
    c++;
    y = getHeightAtX(x);
    if (x >= jw) clearInterval(inter);

    x+=speed;

    $('.box').css({
        'bottom': y + 'px',
        'left': x + 'px'
    });

}, 20);

function getHeightAtX(x) {
 return jh*Math.sin(x*Math.PI/jw)   
};