麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > iOS > 正文

h5 ios輸入框和鍵盤的兼容性優化指南

2019-10-21 18:39:16
字體:
來源:轉載
供稿:網友

起因

h5的輸入框引起鍵盤導致體驗不好,目前就算微信、知乎、百度等產品也沒有很好的技術方案實現,尤其底部固定位置的輸入框各種方案都用的前提下體驗也并沒有很好,這個問題也是老大難問題了。目前在準備一套與native協議 來解決這個問題,目前項目中的解決方案還是有值得借鑒的地方的,分享一下

下面話不多說了,來一起看看詳細的介紹吧

業務場景

固定在h5頁面底部的輸入框

無論是使用

<input />

還是

 <div contenteditable="true"> </div>

在聚焦事件觸發調起原生鍵盤時,在ios部分機型(iphone 4s iphone 5等)上會使得鍵盤彈起后遮擋住輸入框,使得用戶體驗不好。

目前的解決方案是寫一個定時任務,在判定是ios打開頁面時,執行以下函數

let timer = setInterval(()=>{ // container 知道整個容器的dom節點 container.scrollIntoView({  block: 'start', behavior: 'auto' })},300); //300毫秒是經過多次試驗得到的數值,用戶體驗為佳

關于scrollIntoView

scrollIntoView這個API,官方的解釋是

The Element.scrollIntoView() method scrolls the element on which it's called into the visible area of the browser window.

語法

element.scrollIntoView(); // 等同于element.scrollIntoView(true) element.scrollIntoView(alignToTop); // Boolean型參數 element.scrollIntoView(scrollIntoViewOptions); // Object型參數

參數

 

參數 說明 類型 可選值 默認值
alignToTop -- boolean --- false
scrollIntoViewOptions -- object -- --

 

{ behavior: "auto" | "instant" | "smooth", block: "start" | "end",}

在can i use中查到的scrollIntoView的兼容性(主流瀏覽器中不考慮ie)

  • Firefox 36 以上兼容
  • chrome 61 以上兼容
  • safiri 5.1開始 不兼容behavior中的smooth

后續問題

當然,這個解決方案智能解決部分機型的問題,要真正解決這個問題還是要依靠native端。

在ios 和 安卓機型的問題

因為設置了這個定時任務,就會有一個后續的問題出現,也是在落地項目中有遇到過的,在此說明一下。

在上拉或下拉到頭時,會出現背景白色的現象,因為有了這個定時器,它就會不斷將視圖拉回,導致頁面抖動。
如果在app層做了webview禁止拖動的話就不會有這個問題,當然不能完全依賴app,在程序中我們也需要做此方面的兼容優化。

 <div class="container"   @touchStart="touchStart($event)"   @touchEnd="touchEnd($event)">  </div>
 touchStart(e) { this.clearTimer(); }, touchEnd(e) { this.repairIosInput(); }, clearTimer() {  if(this.timer) {   clearInterval(this.timer);   this.timer = null;  }else{   return;  } }, repairIosInput() {  if(this.timer) {   return;  }  this.timer = setInterval(()=>{   container.scrollIntoView({    block: 'start',   behavior: 'auto'   })  },300); }

在開始拉動頁面時清空定時器,停止拉動時開啟定時器,這樣就可以解決造成的抖動的問題了。

總結

做為一個老大難的問題,還會用更多的解決方案,請與我聯系,一起討論,早日脫坑!

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊人久操视频 | 久草在线资源视频 | 国产91精品久久久久久 | 亚洲精品久久久久www | 精品国产91久久久久久久妲己 | 看免费av | 欧美在线 | 亚洲 | 日本免费aaa观看 | 国产99久久久久久免费看农村 | 鲁丝片一区二区三区免费入口 | 亚洲国产超高清a毛毛片 | www国产网站 | 国产人成免费爽爽爽视频 | 黄污网站在线 | h网站在线观看 | h视频在线免费观看 | 久久成人午夜视频 | 国产永久免费观看 | 久久久久久久久亚洲精品 | 国产一级在线观看视频 | 久久最新视频 | av日韩在线免费观看 | 欧美日韩中文字幕在线视频 | 免费观看一级黄色片 | 性生活视频一级 | 国产精品久久久久久一区二区三区 | 欧美日韩a∨毛片一区 | 少妇一级淫片免费放播放 | 欧美中文字幕一区二区三区亚洲 | 日韩视频一区二区三区在线观看 | 国产亚洲欧美在线视频 | 黄色特级毛片 | 有色视频在线观看 | 成人三级电影网址 | 国产精品免费观在线 | 一区二区三区视频在线播放 | 九九热久久免费视频 | 久久影院在线观看 | 亚洲精品无码不卡在线播放he | 国产精品成人免费一区久久羞羞 | 国产精品久久二区 |