移动端H5,输入框,软键盘 及 滚动

1. 软键盘弹起时,输入框在IOS上有部分被软键盘遮挡

处理方法,监听软键盘弹起,即监听input 的focus,当键盘弹起时,第一种方法是在input下面加一个增高层,第二种是强制将外层的滚动条拉至最下


2. 在页面没有按钮组件的时候,如何利用软键盘上的“完成”按钮进行发送

处理方法, 在input外加一层form,监听form的submit事件,监听的回调函数中处理发送请求

<form action="#st"  v-on:submit.prevent="pushcomment">

    <input  id="st"/>

</form>

// 代码为vue写法,.prevent可以阻止submit事件的默认行为,其它框架或原生JS中  需要  pushcomment(data, event) { event.preventDefault(); }

// 软键盘发送按键的文字似乎无法靠JS改变,需要修改原生代码调整,不在此讨论范围内



3. 页面上的元素如何 唤起/关闭 软键盘

处理方法,当输入框(input) focus和blur时可以唤起和关闭软键盘,所以,当用户点击页面其它元素时候,我们可以通过调整input的focus 和 blur 来调整软键盘的 弹出和收起。

<input action="#st" v-on:submit.prevent="pushcomment">

    <input id="st" />

</form>

<div @click="openKeyboard" ></div>


openKeyboard() {  document.querySelector('#st').focus();  }  // 触发focus,弹起软键盘

pushcomment(data) { 

    ...........

    document.querySelector('#st').blur();   // 发送完成后触发blur,关闭软键盘  

}


4. H5上达到原生的滚动效果

处理方法, 对需要滚动的组件使用CSS属性

.scrollPart {

    -webkit-overflow-scrolling: touch;

}

加上这个属性后,滚动可达原生滚动效果

但这个属性会遇到一个问题,如果这个滚动元素的外层元素使用了fixed定位,这个滚动元素就会出现卡死情况 (在safari上,点击其他区域,再在滚动区域滑动,滚动条无法滚动的bug。),处理方法如下:

在webkit-overflow-scrolling:touch属性的下一层子元素上,将height加1%或1px。从而主动触发scrollbar

<div class="scrollPart">

    <div style="min-height:101%;">XXXXXXX</div>

</div>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS webview html5 移动端 软键盘弹起遮挡输入框 问题描述 移动web聊天页面,输入框在底部的时候...
    花儿的爸爸阅读 14,986评论 2 15
  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 5,222评论 0 8
  • 继最近写移动端H5项目不断踩坑之后,决定找一些对自己后续开发有帮助的大总结博客来看看,但是个人很懒,所以将浏览过的...
    陈大冲阅读 6,921评论 0 8
  • 1、特征尺度变换 1.1什么是特征尺度变换 是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻...
    阿立063阅读 8,313评论 1 5
  • 美丽是上天赐与的礼物,凡是美的事物都会受到他人的青睐。比如得到多于他人的赞美,有时获得的远比付出的多的多。因为人...
    海比阅读 2,187评论 0 0

友情链接更多精彩内容