问答详情
源自:4-1 用JS放大镜特效实现

案例在小窗口浏览器中会出现bug。

  发现一个bug。求大神解释一下,老师用的offset方法是获取节点相对于body节点边缘的距离。始终是固定值。而获取鼠标位置使用的client方法,是获取鼠标在窗口中的位置,不是相对于body节点边缘的位置。所以,当页面发生滚动之后,鼠标和浮动div会发生错位。也就是说,如果案例中,小图片的位置,如果在第一版面以外,与body节点上边缘距离远大于窗口高度的时候,无论鼠标如何移动,右边大图只会显示最上面一排。同理,如果小图片位置足够靠右,距离远大于窗口高度的时候,右边的大图,无论鼠标如何移动,只能显示左上角区域,所有代码成了摆设

  所以老师,一个浏览器都没搞定,还教我们跨浏览器兼容?

提问者:陈辰 2015-12-10 04:40

个回答

  • 陈辰
    2015-12-12 08:19:13

    已经解决了。document.body.scrollLeft方法可以获取已经滚动过的距离,加载鼠标坐标上就可以了。

  • echo_kinchao
    2015-12-10 09:12:56

    可能这是老师没有考虑到的吧