真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

移動端H5軟鍵盤的大坑有哪些

這篇文章主要介紹“移動端H5軟鍵盤的大坑有哪些”,在日常操作中,相信很多人在移動端H5軟鍵盤的大坑有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”移動端H5軟鍵盤的大坑有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為玉龍等服務(wù)建站,玉龍等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為玉龍企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

1. 部分機型軟鍵盤彈起擋住原來的視圖

解決方法:可以通過監(jiān)聽移動端軟鍵盤彈起。

Element.scrollIntoView() 方法讓當前的元素滾動到瀏覽器窗口的可視區(qū)域內(nèi)。參數(shù)如下:

  • true,表示元素的頂部與當前區(qū)域的可見部分的頂部對齊

  • false,表示元素的底部與當前區(qū)域的可見部分的尾部對齊

Element.scrollIntoViewIfNeeded()方法也是用來將不在瀏覽器窗口的可見區(qū)域內(nèi)的元素滾動到瀏覽器窗口的可見區(qū)域。但如果該元素已經(jīng)在瀏覽器窗口的可見區(qū)域內(nèi),則不會發(fā)生滾動。此方法是標準的Element.scrollIntoView()方法的專有變體。

window.addEventListener('resize', function() {   if (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA') {     window.setTimeout(function() {       if ('scrollIntoView' in document.activeElement) {         document.activeElement.scrollIntoView(false)       } else {         document.activeElement.scrollIntoViewIfNeeded(false)       }     }, 0)   } })

2. ios 鍵盤收起時頁面沒有回落,底部會留白

部分蘋果手機填寫表單的時候的,輸入內(nèi)容后關(guān)閉軟鍵盤,底部會留一塊空白。這種情況可以通過監(jiān)聽鍵盤回落時間滾動到原來的位置。

window.addEventListener('focusout', function() {   window.scrollTo(0, 0) })  //input輸入框彈起軟鍵盤的解決方案。 var bfscrolltop = document.body.scrollTop $('input')   .focus(function() {     documentdocument.body.scrollTop = document.body.scrollHeight     //console.log(document.body.scrollTop);   })   .blur(function() {     document.body.scrollTop = bfscrolltop     //console.log(document.body.scrollTop);   })

3. onkeyUp 和 onKeydown 兼容性問題

部分 ios 機型 中 input 鍵盤事件 keyup、keydown、等支持不是很好, 用 input 監(jiān)聽鍵盤 keyup  事件,在安卓手機瀏覽器中沒有問題,但是在 ios 手機瀏覽器中用輸入法輸入之后,并未立刻相應(yīng) keyup 事件:

  • onkeypress 用戶按下并放開任何字母數(shù)字鍵時發(fā)生。系統(tǒng)按鈕(箭頭鍵和功能鍵)無法得到識別。

  • onkeyup 用戶放開任何先前按下的鍵盤鍵時發(fā)生。

  • onkeydown 用戶按下任何鍵盤鍵(包括系統(tǒng)按鈕,如箭頭鍵和功能鍵)時發(fā)生。

4. ios12 輸入框難以點擊獲取焦點,彈不出軟鍵盤

定位找到問題是 fastclick.js 對 ios12 的兼容性,可在 fastclick.js 源碼或者 main.js 做以下修改:

FastClick.prototype.focus = function(targetElement) {   var length   if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {     length = targetElement.value.length     targetElement.setSelectionRange(length, length)     targetElement.focus()   } else {     targetElement.focus()   } }

5. fastclick 導(dǎo)致下拉框焦點沖突

移動端使用 fastclick 之后,在 ios 環(huán)境下,有幾個連續(xù)的下拉框 第一個 select 框突然填充了第二個下拉框的內(nèi)容。

根本原因是 Fastclick 導(dǎo)致 ios 下多個 select ,點擊某一個,焦點不停變換的 bug。修改源碼,在 onTouchStart  事件內(nèi)判斷設(shè)備是否為 ios,再判斷當前 nodeName 是否為 select,如果是 return false 去阻止 fastClick  執(zhí)行其他事件。

//line 391行 FastClick.prototype.onTouchStart = function(event) {   //在其方法中添加判斷 符合ios select的時候 不返回事件   if (deviceIsIOS && this.targetElement == 'select') this.targetElement = null   event.preventDefault() } //line521 或者講源碼中 有關(guān)touchEnd判斷非ios或者非select的事件注釋, if (!deviceIsIOS || targetTagName !== 'select') {   this.targetElement = null   event.preventDefault() }

6. ios 下 fixed 失效的原因

軟鍵盤喚起后,頁面的 fixed 元素將失效,變成了 absolute,所以當頁面超過一屏且滾動時,失效的 fixed 元素就會跟隨滾動了。不僅限于  type=text 的輸入框,凡是軟鍵盤(比如時間日期選擇、select 選擇等等)被喚起,都會遇到同樣地問題。

解決方法: 不讓頁面滾動,而是讓主體部分自己滾動,主體部分高度設(shè)為 100%,overflow:scroll

        
   
   
 
.warper {   position: absolute;   width: 100%;   left: 0;   right: 0;   top: 0;   bottom: 0;   overflow-y: scroll;   -webkit-overflow-scrolling: touch; /* 解決ios滑動不流暢問題 */ } .fix-bottom {   position: fixed;   bottom: 0;   width: 100%; }

7. ios 鍵盤換行變?yōu)樗阉?/strong>

    

到此,關(guān)于“移動端H5軟鍵盤的大坑有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
新聞名稱:移動端H5軟鍵盤的大坑有哪些
分享路徑:http://weahome.cn/article/jhhspd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部