H5内form表单输入框被键盘遮挡

form表单可输入框input,在接受用户点击时,会触发键盘弹起。

弹起后的键盘,遮挡了当前编辑的input框

解决办法是:

监听键盘弹起,找到当前元素,调用元素的scrollIntoView 方法,将遮挡元素滚动到屏幕可是区域内

代码如下

  windowHeight: number = 0;
  componentDidMount() {
    // 记录初始化后屏幕的高度
    this.windowHeight = window.innerHeight;
    // 监听resize方法,判断键盘是否弹起
    window.addEventListener('resize', this.resizeEvent);
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this.resizeEvent);
  }

  resizeEvent = () => {
    // 屏幕可是高度小于初始屏幕高度时,说明键盘弹起
    if (this.windowHeight > window.innerHeight) {
      // 键盘弹出事件处理,找到当前操作的dom元素
      const formElement = document.getElementById(this.props.id || 'listFormId');
      // 使用元素自带的scrollIntoView,将被遮挡元素移动到屏幕可视区域内
      formElement?.scrollIntoView({ behavior: "smooth", block: "start", inline: "start" });
    }
  };

H5表单通常是指HTML5创建的用户界面元素,用于收集用户输入信息。要让HTML和CSS结合下的表单看起来更美观,你可以考虑以下几个方面: 1. **设计风格**:选择一种现代、简洁的设计风格,如扁平化设计,避免过于繁复的装饰。Bootstrap或Ant Design等UI框架提供了一些建议模板。 2. **颜色搭配**:使用一致的颜色方案,比如遵循Material Design或Light/Dark模式,让表单元素有良好的视觉层次感。 3. **响应式布局**:确保表单在不同设备上都能良好显示,通过媒体查询调整样式,使按钮、输入框和布局适应各种屏幕尺寸。 4. **合理间距**:保持适当的行高和元素间距,让用户易于阅读和操作。 5. **清晰标识**:字段标签应明确易懂,并与输入框对齐。使用图标和提示文字辅助理解。 6. **使用动画**:适度的过渡效果可以提升用户体验,例如输入聚焦、提交时的反馈动画。 7. **验证提示**:当用户填写错误时,实时给出友好的错误提示,提高交互友好性。 下面是一些简单的示例代码片段: ```html <!-- HTML 示例 --> <form> <label for="username">用户名:</label> <input type="text" id="username" name="username" class="form-input"> <label for="email">邮箱:</label> <input type="email" id="email" name="email" class="form-input"> <button type="submit" class="btn form-btn">提交</button> </form> <!-- CSS 示例 --> .form-input { border: 1px solid #ccc; padding: 10px; } .form-btn { background-color: #007BFF; color: white; cursor: pointer; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值