H5常见问题和解决方案草稿
# 软键盘显示搜索
<form action="#">
<Input
type="search"
autoFocus={true}
prefixIcon="search"
className="search-input"
placeholder="可搜索图文标题关键词或作者名"
/>
</form>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
input type 为 search
ios 需要用 form 包裹
~监听 keyPress 事件, keycode 13 即按下搜索~
监听这个事件没用, keycode 各个键盘不一致
需要监听 form 的 submit 的事件
注意提交默认会产生页面刷新,需要禁用默认事件
e.preventDefault();
1
# H5软键盘顶起问题
历史方案:fixed 布局冻结 + 顶起
目前浏览器新增了虚拟键盘 api,提供了自行控制展现的能力,但需要关注下兼容性
# 滚动穿透问题
开源方案:https://github.com/tuateam/tua-body-scroll-lock/
- iOS 主要是利用对 touchmove 进行 preventDefault,而后模拟滚动。
- Android 主要是对 html 设置 overflow、对 body 设置 fixed 等样式限制。
编辑 (opens new window)
上次更新: 2023/08/23, 09:32:05