移動端鍵盤彈起引起的fixed定位問題

1.問題一:當某輸入框獲取焦點時,彈起自定義時間插件,貌似很簡單一個功能,但測試時問題來了,獲取焦點時鍵盤也會跟著一起彈出來,如下圖:

鍵盤也跟著彈出

,那么到這里你可能會有種給input標簽增加 readonly 屬性的想法,那么我們來試試效果如何,提供ios和Android的兩個截圖:


Android增加readonly屬性后的表現

恩,Android看著沒什么問題了,那我們來看看iOS

ios增加readonly屬性后的表現

看著好像也沒什么問題,但是仔細看屏幕下方,用戶還是可以操作鍵盤,what?我只是想隱藏個鍵盤啊,so bad。靜下新來仔細想想此過程發生了什么,當我們點擊input的時候,觸發focus事件,移動端focus事件會觸發鍵盤彈起,那么,在focus事件觸發時我們可不可以手動讓它觸發blur事件呢,答案肯定是可以的,那么我們來試試:

觸發focus時手動blur
再看看ios效果

至此,完美解決。
2.問題二:填寫訂單頁面有很多的input框供用戶輸入信息,當鍵盤彈起時,底部"提交訂單"一欄使用的是fixed定位,會被鍵盤頂起,如下圖:

底部被頂起

這里的解決方案是當focus被觸發時鍵盤會彈出,這時候頁面就會發生scroll滾動,我們只需監聽resize的變化,然后對應的變化時將底部隱藏,無變化時再顯示,代碼如下:

代碼

讓我們來看看效果:

效果
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • javascript事件基礎 我們的網頁之所以豐富多彩并具有交互功能,是因為我們的javascript腳本語言,而...
    keyworldtony閱讀 537評論 0 2
  • 總結: 鼠標事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,628評論 2 10
  • (續jQuery基礎(1)) 第5章 DOM節點的復制與替換 (1)DOM拷貝clone() 克隆節點是DOM的常...
    凜0_0閱讀 1,359評論 0 8
  • 女兒,愿你在今后歲月的磨練里還依然保持著善良和獨立;愿你能與媽媽分享你的故事,讓媽媽不會覺得孤單。允許媽媽發發小脾...
    Umaltmy閱讀 228評論 2 2
  • 機關重重,命運被操縱,兩眼空空,全身在轉動,步伐匆匆,猜不透行蹤,提筆拉弓,文武皆輕松。 我甘愿做你的傀儡,把前世...
    柳塵微閱讀 722評論 2 6