我之前也研究过这个问题,在 iOS 下,用 scrollIntoView() 是可以解决的。 对于安卓平台,我是默认认为软键盘的高度不会超过屏幕高度的一半,所以先用 clickedElement.getBoundingClientRect().top 计算所点击元素距离屏幕顶部的高度,如果低于屏幕高度一半的距离的话,则用 scrollTop() 让它上移一定距离。因为在用安卓真机的测试过程中发现安卓并不支持 scrollBy() 这个方法,所以用的是 scrollTop() 这个方法。 自己也整理成了一篇文章,放在了这里:点击输入框自动上移页面至软键盘上方。
我之前也研究过这个问题,在 iOS 下,用
scrollIntoView()
是可以解决的。对于安卓平台,我是默认认为软键盘的高度不会超过屏幕高度的一半,所以先用
clickedElement.getBoundingClientRect().top
计算所点击元素距离屏幕顶部的高度,如果低于屏幕高度一半的距离的话,则用scrollTop()
让它上移一定距离。因为在用安卓真机的测试过程中发现安卓并不支持scrollBy()
这个方法,所以用的是scrollTop()
这个方法。自己也整理成了一篇文章,放在了这里:点击输入框自动上移页面至软键盘上方。