虛擬鍵盤,移動web開發的痛。
原生APP的彈出虛擬鍵盤和收回虛擬鍵盤,輸入框始終貼在虛擬鍵盤的上方。如下圖:
![](http://images2015.cnblogs.com/blog/884840/201603/884840-20160306012433299-1529004646.png)
![](http://images2015.cnblogs.com/blog/884840/201603/884840-20160306020316940-338964897.png)
![](http://images2015.cnblogs.com/blog/884840/201603/884840-20160306020504737-1109790452.png)
![](http://images2015.cnblogs.com/blog/884840/201603/884840-20160306020854346-221687625.png)
- ios和安卓點擊輸入框都會觸發focus事件
- ios的所有瀏覽器點擊虛擬鍵盤的“完成“鍵或者其他方式收起鍵盤都會觸發blur事件
- 安卓手機在點擊”收起按鈕“或者其他操作收起鍵盤的時候,沒有觸發blur事件,焦點還是在輸入框上。
下麵為測試截圖
![](http://images2015.cnblogs.com/blog/884840/201603/884840-20160306021049112-311259934.png)
![](http://images2015.cnblogs.com/blog/884840/201603/884840-20160306021059252-291887771.png)
1 <div class="main"> 2 <img src="http://backtonaturedemo.github.io/frontend/case/keyborad/test.png" alt=""> 3 <img src="http://backtonaturedemo.github.io/frontend/case/keyborad/test1.png" alt=""> 4 </div>2. 評論框和發佈按鈕放在一個div里
1 <div class="comment"> 2 <div class="buttons"> 3 <button class="sure cell">發表</button> 4 <button class="cancel cell">取消</button> 5 </div> 6 <textarea class="input" placeholder="我來說兩句"></textarea> 7 </div>註意: 需要在呼出鍵盤前,紀錄下頁面滾動條位置。 呼出鍵盤後,隱藏.main(除評論框以外的元素)。 撐高輸入框,取消fixed,加入上外邊距(給發表按鈕留下位置)。 當輸入框blur或點擊取消,還原頁面。