解决方案 »

  1.   

    当鼠标事件触发的时候,可以通过e.clientX  e.clientY 来获取鼠标的当前位置然后,在没有鼠标事件的时候,你要确定某些元素的位置,怎么办? 这种情况,你也许会考虑通过其他元素的位置 结合滚动条的滚动距离来确定元素的最终位置
      

  2.   

    e.clientX  e.clientY 的坐标不考虑文档的滚动。如果事件发生在窗口的顶部,无论文档滚了多远,clientY 的值都是0
    所以要用offsetTop scrollTop两个属性组合计算在文档中的实际坐标
      

  3.   

    说的在理,但是我说的是菜单,就好比浏览器的右键菜单,这种情况我采用e.clientX  e.clientY可否管用
      

  4.   

    说的很对,我的重点就在这里,easyui中menu及jquery ui中menu他们的菜单示例,特别是easyui就是用的offsetTop scrollTop来写的菜单,为什么用这种方式,考虑手机或者什么用户了?
      

  5.   

    应该要看是何需求吧,这应该没什么兼容性问题,顶多可能就是在你嵌套了框架的时候,鼠标的坐标点也只是基于当前的窗口,而不是整个屏幕吧,当你需要得到框架中鼠标位置的时候,可能要做些计算性的处理。一般菜单都是基于某个元素位置定位显示的,而不是基于鼠标点的比如你想要做一个鼠标移上去,显示出提示层,并且鼠标移动时,提示层跟着移动,这明显是基于鼠标点的,拿鼠标当前位置做参考,这时候就得需要e.clientX  e.clientY 实时确定提示层的位置,而你所说的offsetTop scrollTop 是无法实现 类似的效果的。
      

  6.   

    说的在理,但是我说的是菜单,就好比浏览器的右键菜单,这种情况我采用e.clientX  e.clientY可否管用
    把菜单的定位方式设置为 position: fixed;
    就可以直接用e.clientX  e.clientY了,不用计算窗口的滚动条了