华为Mate9的默认scrollTop高度
作者:
Armin0202 | 来源:发表于
2017-12-04 17:27 被阅读69次
华为Mate9的默认scrollTop高度
运行环境
- device name:
HUAWEI Mate 9
- OS:
Android 7.0
& EMUI 5.0.1
- 微信 version:
6.5.22
- ENV:
vue
、keep-alive
问题描述
- >>故障复现视频地址
- 在华为Mate9的微信内:
- 向上滑动网页后,跳转页面会有一个默认的滚动条高度(很奇怪为什么会这样??谁能告诉我)
-
document.compatMode
输出为CSS1Compat','标准模式
;但却表现为混杂模式
,document.documentElement.scrollTop
值恒为0

1.png
预期
- 页面加载完成时,清除 Mate9 的默认滚动条高度
-
标准模式:
document.compatMode
值为CSS1Compat
-
混杂模式/怪异模式:未定义doctype文档头,
document.compatMode
值为BackCompat
- 在混杂模式下,由于所有浏览器均使用 document.body.scrollTop 获取页面的垂直滚动条的位置,所以不会出现兼容性问题。
- 而在标准模式下,由于 Chrome 与 Safari 仍然使用 document.body.scrollTop,而对于 document.documentElement.scrollTop 返回为 0。这时如果仅仅使用 document.documentElement.scrollTop 获取页面垂直滚动条顶端位置,则在 Chrome 和 Safari 中就会因为永久返回 0 导致页面运行异常
- 也就是,对Webkit,无论是
混杂模式
还是标准模式
,都认为滚动元素是body
;其他浏览器在标准模式下则是HTML
;
- 我目前使用的,PC端:Chrome 62[Blink] 已经支持标准模式;移动端:iOS 10 不支持标准模式。

3.png
方案
- 其实就是为了把 Mate9 默认的滚动条高度给清除掉(为什么存在这个啊??)
- 目前只在 Mate9 上面复现了这个
默认scrollTop的问题
- 代码就这样
setTimeout(() => {
document.documentElement.scrollTop = 0
document.body.scrollTop = 0
}, 0)
参考链接
本文标题:华为Mate9的默认scrollTop高度
本文链接:https://www.haomeiwen.com/subject/lxnmbxtx.html
网友评论