小程序底部input输入框,键盘弹起时页面整体上移
时间: 2024-10-10 11:09:38 浏览: 28
小程序底部的`input`输入框,当键盘弹起时,为了防止遮挡输入框,通常会采用一种常见的设计模式——页面滚动穿透(Scrolling Through)。这种效果通常是通过JavaScript监听设备的键盘事件(如`wx.getKeyboardHeight`),然后动态调整页面的样式或位置,比如增加负值的`padding-bottom`,使得页面整体下移一定的高度,腾出空间显示键盘。
具体操作步骤如下:
1. 注册键盘事件监听器:在`onLoad`或合适的生命周期钩子函数里,获取键盘的高度并保存。
```javascript
Page({
onLoad() {
this.keyboardHeight = wx.getKeyboardHeight();
},
// ...
})
```
2. 监听键盘状态变化:使用`bindkeyboardchange`事件,在用户切换键盘输入法或关闭键盘时,调整页面的样式。
```javascript
wx.createSelectorQuery().select('#yourInput').fields({
height: true,
}).exec((res) => {
let inputHeight = res[0].height;
let contentHeight = document.documentElement.scrollHeight || document.body.scrollHeight;
let delta = this.keyboardHeight - (inputHeight + contentHeight);
if (delta > 0) {
document.body.style.paddingBottom = `${delta}px`;
} else {
document.body.style.paddingBottom = '';
}
});
```
阅读全文