问题描述:
有两个物体A和B,A移动S1的距离到达终点,B移动S2的距离到达终点,两者同时到达各自终点(S1 != S2),
并且所花的时间都是T现在我想通过改变物体的left值,让它们同时到达各自的终点,
通过计算得出A物体单位时间内移动3.4px,B物体移动1px可以同时到达终点,但是
left属性值不能正确表示小数,只能显示整数。所以累加后得到的数值有偏差,导致两个物体不是同时到达终点的请问怎么处理这样的问题,让两者看起来同时到达各自终点呢?

解决方案 »

  1.   

    你不是知道距离了吗。。判断下是否超最大距离,超就直接设置left为最大距离,而不是最终累加的值小数距离firefox应该支持,ie好像不行。。
      

  2.   

    不是啊。。不是用计时器移动吗?慢慢叠加,多个判断left的值是不是超最大值了,超最大值就设置left为最大值,停止计时器,不是直接让你设置left为最大值。
      

  3.   

    这种事用JQ的animate函数不是正好吗,对它来说很EZ。
      

  4.   

    用经过的时间/总时间 * 单位时间距离 不要用加法
    浮点运算 到最后肯定是对的只要你别去取舍 x/y=z   z*y == x;
    另外 left 可以给浮点数的 
    当然 显示的话 还是一个像素为基准 不过半个像素的偏差你也能看出来?
    计算机的屏幕 怎么可能精确显示呢
      

  5.   

    A物体单位时间内移动3.4px,B物体移动1px可以同时到达终点 你A移动为3.4px  =小数, 而B移动=1 为整数,你终点值又是整数, 你当然不准确了,A的小数被你弄去了,你为什么不设置A移动为整数呢, 二者同一 得到移动的终点都为整数,可以解决你不少事情。
      

  6.   

    我是用鼠标按下一个按钮不放onmousedown,物体才运动的,鼠标抬起的时候onmouseup物体就停止运动,所以总的时间不固定,只能说是同时到达
      

  7.   


    你不相信数学公式? 难道赛车游戏 屏幕大小不一样 会影响结果?
    明显的一个 矢量计算  L = Vt (t>T?T:t)