感谢CodeHacker,我能够实现我想要的东西。下面是他的建议的略微改编版本,现在有一个你可以改变的“实时”SIM卡。我已经使用了更新函数的递归调用和全局计数器变量来创建连续模拟。码:
function calculate(x_old, factor, bound){ return x_old + factor * (bound - x_old); } var cnt = 0; function callDelayed(){ console.log(cnt) var x_old = Number(document.getElementById('x-old').value) ; var factor =Number(document.getElementById('factor').value) ; var bound = Number(document.getElementById('bound').value) ; setTimeout( function(){ var calculation = calculate(x_old, factor, bound); document.getElementById('result').value = calculation; console.log("Finished step " + cnt); // update x_old document.getElementById('x-old').value = document.getElementById('result').value cnt = cnt+1; // if time has not run out, update again if (cnt <= 100) { callDelayed() } else return }, 100); }
是(递归呼叫)被认为是不好的做法还是没有问题?
对于“滑动”部分,您可以使用一些外部组件,但这取决于您正在使用的JavaScript框架和/或您使用Jquery或类似的东西。
要模拟较低的速度,可以使用window.setTimeout。 此函数在等待毫秒数后基本上执行另一个函数。
setTimeout( function(){ ///Make something here }, 3000); //execute it after 3000 milliseconds passed.
我在jsfiddle中制作了一个非常基本的纯javascript / html示例。这应该让你开始。
https://jsfiddle.net/pimboden40/L65te3f2/17/