我对 js 和 jQuery 很陌生,想实现一个在这里讨论过很多次的简单动画:一个弹跳球。但是,我没有找到具体问题的答案,因为已经讨论的主题要复杂得多。
我想要一个非常简单的动画:五次弹跳并与第六次保持在地面上。到目前为止,我已经实现了这一目标。但是对于五次反弹,我想将反弹距离减少初始距离的 20%。假设距离为 100,它应该先反弹到 80,然后再反弹到 60……到 20 到 0。
你可以在这里看到我的尝试。
或者只是这里的js代码:
$(function() {
var time = 500;
var bounces = 5;
function bounceDown(){
$(".ball").animate({top: 200}, time, function(){
bounceUp();
});
};
function bounceUp() {
$(".ball").animate({top: 100}, time);
};
function shadowUp(){
$(".shadow").animate({width: 100, height: 10, left: 85, top: 245, opacity: 1}, time,
function(){
shadowDown();
});
};
function shadowDown() {
$(".shadow").animate({width: 0, height: 0, left: 130, top: 225, opacity: 0}, time);
};
function finalDown(){
$(".ball").animate({top: 200}, time);
};
function finalShadow(){
$(".shadow").animate({width: 100, height: 10, left: 85, top: 245, opacity: 1}, time);
};
$(".button").on("click", function(){
for (var i = 0; i < bounces; i++){
setTimeout(function(){
bounceDown();
shadowUp();
}, time*2*i);
setTimeout(function(){
finalDown();
finalShadow();
}, 5000);
};
});
});