點選底部input輸入框,彈出的軟鍵盤擋住input(蘋果手機使用第三
測試移動端頁面的時候,偶然發現點選底部input輸入框時,彈出的虛擬鍵盤偶爾會擋住input輸入框。
輸入框固定在頁面底部,如圖所示:
input固定底部設計圖.png
點選底部input輸入框喚起軟鍵盤時,軟鍵盤擋住輸入框。如圖所示:
點選input鍵盤擋住圖.png
測試過多臺真機發現安卓的手機都不會出現這個問題,個別的iOS手機有問題。而且同一型號的蘋果有的有問題有的沒有問題。經過多方的歸納、總結驚奇的發現:會出現這個bug的蘋果手機,使用的都是蘋果第三方輸入法,而使用蘋果自帶的輸入法則沒有這個bug。
出現這個bug的時候輸入字元的時候,input輸入框又會滾動上去。沿著這個思路往下想,我想到input獲取焦點失敗、滾動瀏覽器視窗或容器元素的問題。
解決這個問題的思路是,點選input輸入框的時候,讓其input滾動到當前div的頂部。於是我想到了Element.scrollIntoView() 方法。
DOM規範中並沒有規定各瀏覽器需要實現怎樣的滾動頁面區域,各瀏覽器實現了相應的方法,可以使用不同的方式控制頁面區域的滾動。這些方法作為HTMLElement型別的擴充套件存在,所以它能在所有元素上使用。
Element.scrollIntoView()語法:
<code>
element.scrollIntoView(); // Equivalent to element.scrollIntoView(true)
element.scrollIntoView(alignToTop); // Boolean arguments
element.scrollIntoView(scrollIntoViewOptions); // Object argument
</code>
引數:alignToTop(可選)
<code>
Is a Boolean value:
If true, the top of the element will be aligned to the top of the visible area of the scrollable ancestor. This is the default value.( 如果alignToTop為true,該元素的頂部將對齊的滾動的祖先的可見區域的頂部。這是預設值。)
If false, the bottom of the element will be aligned to the bottom of the visible area of the scrollable ancestor.(如果alignToTop false, 該元素的底部將對齊的滾動的祖先的可見區域的底部。)
</code>
點選input底部輸入框,軟鍵盤擋住輸入框的解決辦法是,點選輸入框的時候給input繫結事件,使用 Element.scrollIntoView()方法使元素彈到祖元素可見區域的頂部。程式碼如下:
<code>
$("input").on("click", function() {
var target = this;
setTimeOut(function() {
target.scrollIntoView(true);
}, 100);
})
</code>
作者:小宇子李
原文連結:https://www.cnblogs.com/liyanyu520/p/9450102.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/151/viewspace-2820603/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 修復蘋果iOS 原生鍵盤遮擋input框蘋果iOS
- 修復安卓鍵盤彈起擋住輸入框bug安卓
- python-input鍵盤輸入Python
- 短視訊平臺開發,點選輸入框時自動彈出軟鍵盤
- input 輸入框只能輸入數字
- input輸入框的各種事件事件
- android手機的微信H5彈出的軟鍵盤擋住了文字框,如何解決?AndroidH5
- 那些年踩過的坑——input輸入框 ios端 readyonly 點選出現游標iOS
- react在安卓下輸入框被手機鍵盤遮擋問題React安卓
- 安卓和ios鍵盤擋住輸入內容安卓iOS
- flutter - 使用 SingleChildScrollView() 解決鍵盤遮擋輸入框的問題FlutterView
- Element UI Input框輸入無效UI
- Input 輸入框中 只能輸入正整數
- 輸入框跟隨鍵盤彈出/隱藏移動
- 獲取input框輸入值異常
- React Native踩坑指南:ios鍵盤遮擋輸入框React NativeiOS
- jQuery獲取各種input輸入框的值jQuery
- Vue使用antd中input元件去驗證輸入框輸入內容Vue元件
- Element 輸入框input響應回車事件事件
- Android軟鍵盤彈出,覆蓋h5頁面輸入框問題AndroidH5
- 網頁佈局-----input點選時出現黑色邊框網頁
- VUE 實現 Studio 管理後臺(十三):按鈕點選輸入控制元件,input 輸入框系列Vue控制元件
- android實現底部彈出框與軟鍵盤衝突(全面屏虛擬鍵適配)Android
- 實時監聽input輸入框value的變化:
- 禁用input輸入框的滑鼠滾輪事件詳解事件
- html input文字輸入框的一些總結HTML
- Element原始碼分析系列5-Input(輸入框)原始碼
- input 密碼輸入框如何定位,並且輸入密碼呢?密碼
- 點選彈出居中使用者登入框效果
- Python教程:input接受輸入Python
- 微信小程式input輸入框設定最大可輸入字元數量微信小程式字元
- element-ui 輸入框el-input 輸入長度限制元件不生效UI元件
- 短視訊系統原始碼,點選選擇框,底部彈出可以選擇的選項原始碼
- 利用flex佈局解決ios輸入框被鍵盤遮擋問題FlexiOS
- input文字框焦點背景變色
- input輸入框加入限制只能輸入正整數,輸入其他字元會自動清除字元
- Input元件無點選效果元件
- 直播平臺原始碼,關於彈出框中輸入框被遮擋問題解決原始碼