首页 新闻 搜索 专区 学院

javascript操作css left属性的问题

0
悬赏园豆:50 [已解决问题] 解决于 2012-11-08 09:29

问题描述:
有两个物体A和B,A移动S1的距离到达终点,B移动S2的距离到达终点,两者同时到达各自终点(S1 != S2),
并且所花的时间都是T

现在我想通过改变物体的left值,让它们同时到达各自的终点,
通过计算得出A物体单位时间内移动5.6px,B物体移动1px可以同时到达终点,但是
left属性值不能正确表示小数,只能显示整数。所以累加后得到的数值有偏差,导致两个物体不是同时到达终点的

请问怎么处理这样的问题,让两者看起来同时到达各自终点呢?

逐影的主页 逐影 | 小虾三级 | 园豆:998
提问于:2012-10-30 16:48
< >
分享
最佳答案
0

将速度分成2段,比如50距离要30秒走完,前10秒速度1/s,后20秒速度2/s,这样就不会有不整除的问题了,两个物体就能同时到达:

V=parseInt(S/T)
M=S%T

if(t>T-M){
V++;
}

收获园豆:25
向往-SONG | 老鸟四级 |园豆:4853 | 2012-10-30 17:50

这样看起来就不是很匀速了

逐影 | 园豆:998 (小虾三级) | 2012-10-30 17:54

@没有加班费: 

影响应该不大,后面只快一个像素可能也感觉不到

向往-SONG | 园豆:4853 (老鸟四级) | 2012-10-30 18:10

@没有加班费: 

上面写错了

移动....

if(t==T-M){

V++;

 

}

向往-SONG | 园豆:4853 (老鸟四级) | 2012-10-30 18:15

@向往-SONG: 我用一个按钮来控制,如果按下物体移动,释放则物体停止,这样分段来控制不是很方便吧?

逐影 | 园豆:998 (小虾三级) | 2012-10-30 18:17

@没有加班费: 

封装好一个移动的方法,怎么控制都没区别啊。

分段速度实质是将你除整余下的距离平均分配到各个时间段里

向往-SONG | 园豆:4853 (老鸟四级) | 2012-10-30 20:08
其他回答(2)
0

你设置下移动时间。

收获园豆:10
┢┦偉 | 园豆:1240 (小虾三级) | 2012-10-30 16:51

已经设置T为移动时间,是个常量

支持(0) 反对(0) 逐影 | 园豆:998 (小虾三级) | 2012-10-30 16:54

@没有加班费: 延迟 b移动

支持(0) 反对(0) ┢┦偉 | 园豆:1240 (小虾三级) | 2012-10-30 16:58

@┢┦偉: 这两个物体是要同时移动的,不能出现有一个物体在动而另一个不动的情况

支持(0) 反对(0) 逐影 | 园豆:998 (小虾三级) | 2012-10-30 17:02

@没有加班费: 你可以让他延迟慢点  那样也不是很明显啊

支持(0) 反对(0) ┢┦偉 | 园豆:1240 (小虾三级) | 2012-10-30 17:03

@┢┦偉: 但是两者最后是要同时到达终点啊

支持(0) 反对(0) 逐影 | 园豆:998 (小虾三级) | 2012-10-30 17:07

@没有加班费: 你设置一下延迟看看啊 一个快一个慢最后肯定能同时到的

支持(0) 反对(0) ┢┦偉 | 园豆:1240 (小虾三级) | 2012-10-30 17:09

@┢┦偉: 我是通过按下一个按钮来控制两个物体移动的,鼠标按下按钮的时候,两个物体移动,抬起时动作停止,那么是要给onmousedown事件设置两个setTimeout?

支持(0) 反对(0) 逐影 | 园豆:998 (小虾三级) | 2012-10-30 17:14
0

假设A移动的时间为T1,B移动的时间为T2,他们不是常量。且两者都是平行直线运动的。那么T1=S1/5.6;T2=S2/1;这样两者时间就一样了,T1-T2就是A多移动的时间。“时间差*速度”不就吧距离算出来了。

当然如果不是平行直线运动,那么就要进行具体在X、Y方向的分解。

如果不是直线运动 那就没法了。

我是这样认为的

收获园豆:15
堂堂88 | 园豆:9 (初学一级) | 2012-10-30 17:17

如果假设S1 = 1512,S2 = 396,速度分别为V1、V2,经过时间T后到达终点,那么应该有

S1 / V1 = S2 / V2,如果再假定物体B的速度V2为1的话,那么可以得出V1的值为3.81818181...

也就是说每当B移动1,A应该移动3.818181才能在T时间内同时到达,不知道3.8181这个浮点数怎么取值比较好,如果取4,那后面每次累加就多了,怎么确保计算精确呢?

支持(0) 反对(0) 逐影 | 园豆:998 (小虾三级) | 2012-10-30 17:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册