私は js と jQuery にまったく慣れていないので、ここで何度も議論されている単純なアニメーションを実現したいと考えていました: 跳ねるボールです。ただし、すでに説明したトピックははるかに洗練されていたため、特定の質問に対する答えは見つかりませんでした.
非常に単純なアニメーションが必要です。5 回バウンドし、6 回目で地面にとどまります。それは私がこれまでに達成したものです。しかし、5 回のバウンスでは、バウンスの距離を最初の距離の 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);
};
});
});