本帖最后由 nmyyuan 于 2014-05-30 17:46:50 编辑

解决方案 »

  1.   

    首先你确定 oUl.style.top==oUl.offsetTop?
    我们一般是这么做的 oUl.style.top= (oUl.style.top -5) + 'px';    oUl.style.top= (oUl.style.top + 5) + 'px';或者oUl.offsetTop = (oUl.offsetTop - 5) + 'px';    oUl.offsetTop = (oUl.offsetTop + 5) + 'px';  
      

  2.   

    楼主你用的是chrome测试的吧?你的原始代码在chrome下确实是错的,但是在IE下是可以上下移动的。
    这是浏览器处理的差异,chrome给ul默认了一个padding属性造成的,所以才会出现加了个padding:0就可以了这种现象。虽然表面可以了,但是其实楼主的代码根本就是有问题的,成功只是巧合。
    如2楼所说style.top和offsetTop根本就不是一个值!所以只要加了padding值,且padding值大于5,就会出现楼主刚开始说的现象