var top = (e = document.documentElement) ? e.scrollTop : document.body.scrollTop; 在chrome下 document.documentElement是有值的,但是document.documentElement.scrollTop 的值一直是0,导致top取值错误。
估计是老师没把代码写全,所以才会出错,我之前用老师的var top = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop; 写,也是为0,换成 var top = document.documentElement.scrollTop || document.body.scrollTop; 就好了
我也是搞了半天, 用下面这个表达式即可
var top = document.documentElement.scrollTop || document.body.scrollTop;