美文网首页
小程序键盘遮盖问题解决

小程序键盘遮盖问题解决

作者: 南慕瑶 | 来源:发表于2020-11-06 15:26 被阅读0次

【warning】

本文为实际工作简记,粗陋小笔记一篇,仅供参考。

一、问题简述

小程序填写表单的过程中,手机键盘调起,默认情况,键盘顶部会紧贴着表单项。

如图所示:

当遇到这样的场景:

表单项输入的内容,作为关键字,向后台请求匹配数据列表。拿到数据后,在表单项下方展示列表数据,供用户点选。

就会出现问题:

展示在 input 下面的列表,会被键盘完全挡住。

二、解决办法

1、获取焦点时,使用 input 组件的 cursor-spacing 属性,设置键盘和 input 组件的间距。

2、失去焦点时,计算页面已经向上滚动的距离,加上列表项的高度,手动将整个页面向上推,防止处于页面底部的 input 失去焦点时、又掉回页面底部。影响用户体验。

手动将整个页面向上推的方式:

wx.pageScrollTo({

  scrollTop: 100   // 设置为,用户手动滚动了的高度 + 列表项高度。要动态计算

})

【注意】

wx.pageScrollTo 仅在 page 组件中有效,component 中无效!


三、记录解题思路

1、在当前 input 获取焦点的时候,手动将页面向上、滚动 列表高度 那么大的距离。

2、如何滚动?👇

(1)pageScrollTo 方法

wx.pageScrollTo({

  scrollTop: 100   // 设置为,用户手动滚动了的高度 + 列表项高度。要动态计算

})

(2)使用 scroll-view

将整个表单项使用 scroll-view 包裹,给定高度为手机屏幕高度。

当 input 获取焦点,使用 scroll-view 组件的 api,在当前已经滚动了的距离基础上(当然也可能并没有滚动)、将整个容器再向上滚动列表项的高度。

(这个方式我没有成功。。)

#参考:https://www.cnblogs.com/yangzhou33/p/8563886.html

相关文章

网友评论

      本文标题:小程序键盘遮盖问题解决

      本文链接:https://www.haomeiwen.com/subject/pbutbktx.html