关于 iOS safari 的一个显示问题

2020-06-13 19:54:36 +08:00
 JCZ2MkKb5S8ZX9pq

问题说明

期望的调整方案

896 次点击
所在节点    前端开发
2 条回复
JCZ2MkKb5S8ZX9pq
2020-06-16 01:03:57 +08:00
```
setInterval(function() {
let m = document.body
m.style.cssText += ('min-height:' + Math.ceil(m.scrollHeight) + 'px')
}, 3000)
```

- 底部 1px 问题这样算先凑合修复了。
- 原理是每隔几秒取一下当前页面高度,然后给一下 min-height (直接给 height,加载慢的图可能会再撑开出现滚动条)。
- 本来是向上取整,后来发现不向上取整也行,只要重新定义过就行(可能是浏览器特性,不过取一下更保险)。
- 确点是页面高度如果变小了不会缩小,可以取消 css/再稍后取高度 /再设 css,但我的情况比较简单,不需要这么绕一下。

---

- 测试结果应该是这条底部缝隙在<html>外部,可能是 html 和容器的间隙。
- 容器背景色取的是 body 背景色。如果顶部白色底部暗色,头尾好像无法兼顾。
JCZ2MkKb5S8ZX9pq
2020-06-16 01:08:51 +08:00
小补丁,min-height 在属性里可以直接写。
m.style.minHeight = Math.ceil(m.scrollHeight) + 'px'

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/681307

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX