點選底部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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 修復安卓鍵盤彈起擋住輸入框bug安卓
- 修復蘋果iOS 原生鍵盤遮擋input框蘋果iOS
- iOS解決鍵盤彈出遮擋輸入框問題iOS
- python-input鍵盤輸入Python
- 輸入法擋住輸入框和點選空白處把手機的輸入法影藏(焦點處理)
- 短視訊平臺開發,點選輸入框時自動彈出軟鍵盤
- Android 軟鍵盤蓋住輸入框的問題Android
- 安卓和ios鍵盤擋住輸入內容安卓iOS
- react在安卓下輸入框被手機鍵盤遮擋問題React安卓
- 輸入框軟鍵盤遮擋問題解決方案
- input只能輸入文字框
- input 輸入框只能輸入數字
- input輸入框的各種事件事件
- fixed定位和input獲取焦點影響鍵盤彈出效果
- Element UI Input框輸入無效UI
- 控制input輸入框游標的位置
- jQuery不能修改input輸入框typejQuery
- 那些年踩過的坑——input輸入框 ios端 readyonly 點選出現游標iOS
- Input 輸入框中 只能輸入正整數
- 關於Input輸入框藍色外框的操作
- flutter - 使用 SingleChildScrollView() 解決鍵盤遮擋輸入框的問題FlutterView
- 獲取input框輸入值異常
- input輸入框的游標定位的問題
- android鍵盤擋住介面Android
- React Native踩坑指南:ios鍵盤遮擋輸入框React NativeiOS
- iOS -UITextField/UITextView之鍵盤遮擋輸入框解決方法iOSUITextView
- Vue使用antd中input元件去驗證輸入框輸入內容Vue元件
- jQuery獲取各種input輸入框的值jQuery
- 網頁佈局-----input點選時出現黑色邊框網頁
- Android軟鍵盤彈出,覆蓋h5頁面輸入框問題AndroidH5
- Element 輸入框input響應回車事件事件
- android實現底部彈出框與軟鍵盤衝突(全面屏虛擬鍵適配)Android
- VUE 實現 Studio 管理後臺(十三):按鈕點選輸入控制元件,input 輸入框系列Vue控制元件
- 禁用input輸入框的滑鼠滾輪事件詳解事件
- html input文字輸入框的一些總結HTML
- 實時監聽input輸入框value的變化:
- Android手機軟鍵盤遮蓋輸入框之重新佈局詳解Android
- Element原始碼分析系列5-Input(輸入框)原始碼