chrome61向w3c规则靠拢,document.body.scrollLeft获取的值一直为0,需要使用document.documentElement.scrollLeft(或document.scrollingElement.scrollLeft)获取;

但是旧版谷歌(60版本以及以下)中,document.documentElement.scrollLeft的值一直为0,需要使用document.body.scrollLeft(或document.scrollingElement.scrollLeft)获取;

在火狐57浏览器中,document.body.scrollLeft的值一直为0,需要使用document.documentElement.scrollLeft(或document.scrollingElement.scrollLeft)获取;

在火狐43浏览器中,document.body.scrollLeft一直为0,document.scrollingElement为undefined,需要使用document.documentElement.scrollLeft获取。

所以综合后的兼容性写法为:

let elem = document.documentElement || document.scrollingElement || document.body;
let left = elem.scrollLeft;

参考资料:Jerry Qu Chrome 中 scrollingElement 的变化

源文链接:http://www.cnblogs.com/xsilence/p/8204007.html

05-28 17:38