//这段代码为什么计算到-3的时候停不下?
//是不是没有计算完成啊?
//我觉得是到了浮点数的时候就计算不完成了?
//我的想法是如果在计算49的时候ss小于1的时候就等于1.
//如果在计算-3的时候ss小于-1的时候就等于-1才对吧?
//这个公式是计算一个缓动效果的.就是距离目标会越来越快,
//或者大家谁有更好的公式分享一下?
var arr = [-3,49];
var i=0;
var n=0;
var ss=0;
var timer;
var t;
function aa(target){
if(n == target){
console.log("stop");
clearTimeout(t);
}else{
ss = (target - n) / 2.5;
ss = ss < 1 ?Math.ceil(ss) : Math.floor(ss);
n+=ss;
console.log(n)
t = setTimeout(function(){
aa(target);
},40)
}
}
timer = setInterval(function(){
i++;
if(i == 2){
i=0;
}
aa(arr[i]);
},1000);
//是不是没有计算完成啊?
//我觉得是到了浮点数的时候就计算不完成了?
//我的想法是如果在计算49的时候ss小于1的时候就等于1.
//如果在计算-3的时候ss小于-1的时候就等于-1才对吧?
//这个公式是计算一个缓动效果的.就是距离目标会越来越快,
//或者大家谁有更好的公式分享一下?
var arr = [-3,49];
var i=0;
var n=0;
var ss=0;
var timer;
var t;
function aa(target){
if(n == target){
console.log("stop");
clearTimeout(t);
}else{
ss = (target - n) / 2.5;
ss = ss < 1 ?Math.ceil(ss) : Math.floor(ss);
n+=ss;
console.log(n)
t = setTimeout(function(){
aa(target);
},40)
}
}
timer = setInterval(function(){
i++;
if(i == 2){
i=0;
}
aa(arr[i]);
},1000);
var arr = [ -3, 49 ];
var speed = 1;
var a = 0.5;//加速度
var perTime = 0.5;//间隔时间
var nowPosition = arr[0];
var timer = setInterval(function() {
aa();
}, perTime*1000);
function aa() {
if (nowPosition == arr[1]) {
timer = clearInterval(timer);
} else {
console.log('p:' + nowPosition);
if (nowPosition + speed*perTime >= arr[1]) {
speed = (arr[1] - nowPosition)/perTime;
console.log('speed:' + speed);
nowPosition = arr[1];
console.log('endP:' + nowPosition);
} else {
console.log('speed:' + speed);
nowPosition += speed*perTime;
speed += a*perTime;
}
}
}