javascript操作css left属性的问题

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

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

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

月关宝盒
浏览 647回答 11
11回答

蓝山帝景

你设置下移动时间。

MMMHUHU

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

天涯尽头无女友

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

米琪卡哇伊

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

隔江千里

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

交互式爱情

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

Cats萌萌

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

偶然的你

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

人到中年有点甜

假设A移动的时间为T1,B移动的时间为T2,他们不是常量。且两者都是平行直线运动的。那么T1=S1/5.6;T2=S2/1;这样两者时间就一样了,T1-T2就是A多移动的时间。“时间差*速度”不就吧距离算出来了。 当然如果不是平行直线运动,那么就要进行具体在X、Y方向的分解。 如果不是直线运动 那就没法了。 我是这样认为的

ABOUTYOU

如果假设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,那后面每次累加就多了,怎么确保计算精确呢?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript