0
円滑にdiv(円)を移動しようとしましたが、できません。 Divは直ちに最後のポイントに移動します。divに円滑に余白を設定
私はボールの落下のプロセスをシミュレートしようとしました。 2番目のパラメータ0でメソッドanimateを使用しましたが、これは私を助けませんでした。 どうすればいいですか?
"use strict";
function calculateH(h, t) {
return h - ((Math.pow(t, 2)*9.8)/2);
}
/**
* [getTrip function is calculate Y coordinates for the ball thrown down]
* @param {[number]} h [The height from which the ball falls]
* @param {[number]} t [Time elapsed from the beginning of the fall of the ball]
* @param {[number]} interval [EPS]
* @param {[number]} k [Ratio of height to screen height. It is necessary that the ball fell to the site bottom]
* @return {[array]} [Array of Y coordinates. {0, 0.2, 1.2 ... h}]
*/
function getTrip(h, t, interval, k) {
var calculations = new Array();
for(t; calculateH(h, t) > 0; t += interval)
calculations.push((h - calculateH(h, t))*k);
return calculations;
}
$('document').ready(function() {
var bol = $('#mycircle');
var h = 100;
var t = 0;
var interval = 0.001; // eps
/**
* [k is the ratio of height of the screen to start the ball drop height]
* @type {[number]}
*/
var k = ($(document).height()-bol.height())/h;
var calculations = getTrip(h, t, interval, k);
// Problem is there.
// I want animate of fell ball, but this code just move in last Y coord.
calculations.forEach(function(y) {
bol.css({'margin-top': y+'px'});
});
bol.animate({'margin-top': h*k+'px'}, 1); // prees to the bottom
});
https://jsfiddle.net/82agzc2e/4/
感謝。私は物理現象をシミュレートしたいからです。 1秒の遅れは物理的モデルを破る –
私の実験は完全にボールドロップを刺激しています。それは時間に依存する高さを持っています。加速自由落下を示す必要があります。 –
しかし、あなたの約束は、「0.001ms」の間隔ができないということです。あなたのアニメーションは非常に遅くなります。私はこれがあなたが望むものではないと思う。一般的な質問を解決するには、あなた自身の再帰的ループを作成しなければなりません。このように:https://jsfiddle.net/82agzc2e/6/ @ KonstantinKulakov – eisbehr