我正在尝试使用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);
最佳答案 我在想什么?假设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)
};