1. 程式人生 > >vue-cli 單頁面手機應用input點選手機端虛擬鍵盤彈出蓋住input

vue-cli 單頁面手機應用input點選手機端虛擬鍵盤彈出蓋住input

在用vue-cli腳手架搭建手機H5頁面應用的時候,其中一頁中部有input,底部有position:absolute;bottom:0的元素,

當點選input框時在安卓手機上出現了:

1 虛擬鍵盤彈出蓋住input

2 底部定位的元素被擠上來

網路上很多關於body設定寬高以及scrolltop的方法都不管用,因為這裡是路由頁面,根據網上的思路,吊起輸入鍵盤的時候頁面的高度是變化的,監聽window.onresize,判斷是否吊起鍵盤,然後設定底部模組的隱藏和顯示,整個塊元素的margintop就可以實現了。

程式碼如下

 mounted () {
    this.clientHeight = document.documentElement.clientHeight;
    const that = this;
    // 安卓手機鍵盤吊起擋住輸入框

    window.onresize = function() {

      if(document.documentElement.clientHeight < that.clientHeight) {
        // scrollVal為負值
        let scrollVal = document.documentElement.clientHeight-that.clientHeight;
        $(".alert-main").css("marginTop",scrollVal);
        $(".bottom-create").hide();
      }else {
        $(".alert-main").css("marginTop",0);
        $(".bottom-create").show();
      }
      
    };
  },

今天這個bug 遇到了新問題,同樣的華為手機上,當從別的路由吊起輸入鍵盤的時候回到當前路由,

document.documentElement.clientHeight就變成了減去輸入鍵盤高度的值,

這時需要在頁面第一次載入將document.documentElement.clientHeight記錄到store中,store中的值不會因為頁面重新渲染而改變。

相關推薦

vue-cli 頁面手機應用input手機虛擬鍵盤input

在用vue-cli腳手架搭建手機H5頁面應用的時候,其中一頁中部有input,底部有position:absolute;bottom:0的元素, 當點選input框時在安卓手機上出現了: 1 虛擬鍵盤彈出蓋住input 2 底部定位的元素被擠上來 網路上很多關

Vue筆記3 vue-cli頁面應用與路由設定

1.準備,安裝webpack和vue-cli,根據官網教程構建專案。搭建好的專案如下: 2.配置路由 1). 在components中建立Page.vue,在router中的index.js中配置路由。 import Vue from 'vue' //

手機訪問網站 手機號碼直接撥打電話

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

閉包的應用-每個li標籤,索引值(一)

點選每個li標籤,彈出索引值 <ul> <li>123</li> <li>456</li>

HTML-通過網頁上的文字QQ新增好友頁面

在網上參考了部分方法,綜合了一下。 發現有2中方式: 第一種是不能直接彈出新增介面的,只能彈出網頁,再通過網頁中的新增好友才能新增: 彈出的網頁是這樣的(我是寫成在新的網頁中開啟) 現在看實現的程式碼: <html> <

h5頁面 在安卓手機鍵盤頂起頁面佈局的解決辦法

var oHeight = $(document).height();     $(window).resize(function(){ //ios軟鍵盤彈出不會觸發resize事件         if($(document).height() < oHeight){             $("#

layer.confirm第一個按鈕關閉

layer.confirm彈出框,當你點選第一個按鈕的時候,這個彈出層不會關閉,也是給一些小夥伴帶來了一些困擾,下面分享兩個解決方案: ①可以將第一個按鈕的回撥函式傳一個index,然後使用layer.close("index")就可以點選第一個按鈕的時候關閉彈出框了,程式碼如下: ②

JavaScript滑鼠事件,滑鼠右鍵,div

document.oncontextmenu = function(){return false}; //禁止滑鼠右鍵選單顯示 var res = document.getElementById('box'); //找到id為b

手機虛擬鍵盤出使介面佈局混亂解決方法

html5頁面當點選input輸入框彈出安卓手機上鍵盤就會把背景頂了上來,軟鍵盤彈出時,改變了height,使height:100%,不能達到原來的高度。 頁面佈局就亂了,解決方法: 原生js: window.onload=function(e){ var _b

解決RecyclerView實現聊天介面,但下面的EditText後的輸入法會遮蓋RecyclerView內容的方法

學習Android也將近4個年頭了,一直想寫點自己所學的內容來幫助後來人,為網際網路奉獻自己的一份力量,也算自己的積累。但是之前由於自己的惰性一直沒有下筆,那就從今天這一篇開始吧! 我們做Android開發經常會有做即時聊天的需求,產品經理不管做啥APP,都要塞個IM,那

android 頭像對應的 底部框拍照,相簿取消 簡單實現

標準 看完這個帖子一定看看這個, 兩個結合 , 實現  拍照 相簿 回撥 主頁面佈局  這裡對應的就是一個點選事件 實現 , <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and

jQuery層_自身以外地方關閉

<html> <style> .hide{display:none;} </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script ty

IOS開發空白處隱藏虛擬鍵盤的幾種方法:

OS開發中經常要用到輸入框,預設情況下點選輸入框就會彈出鍵盤,但是必須要實現輸入框return的委託方法才能取消鍵盤的顯示,對於使用者體驗來說很不友好,我們可以實現點選鍵盤以外的空白區域來將鍵盤隱藏,以下我總結出了幾種隱藏鍵盤的方法: 首先說明兩種可以讓鍵盤隱藏的Metho

實現ssm加layui資料表格展示資料,搜尋,編輯,分頁(後臺用pagehelper),排序,檢視圖片 ,檢視大圖(層)

之前的方法檢視大圖有bug現在換了個方法,修改後就可以了,有問題請留言 先上圖 整個頁面用的都是layui外掛。 頁面有資料展示(帶分頁),顯示圖片,檢視圖片大圖,編輯資料實時更新。搜尋功能帶分頁。 引入layui.css,layui.js 2個檔案,檔案自行到官網下

關於html頁面移動鍵盤時影響頁面佈局的問題

html頁面在手機上寫了input框的時候,手機的軟鍵盤會彈出,會將頁面推上去,頁面佈局會改變,要在頁面寫如下程式碼: $(document).ready(function () {   $('body').height($('body')[0].clientHeight)

如何使超連結後瀏覽器下載框

如果下載的資源和伺服器是同域的,那麼只要在a標籤中新增download屬性即可。 <a href="http://127.0.0.1:8000/a.jpg" download="a.jpg"

虛擬鍵盤導致頁面被頂起,鍵盤隱藏頁面卻不回落的問題

位置 inpu 導致 class UNC brush dom dev 版本 /** * 解決虛擬鍵盤彈出導致頁面被頂起,鍵盤隱藏頁面卻不回落的問題 * 版本:ios12以上 wechat6.7.4以上 */ function solveIosKeyb

Vue 頁面中做錨定位

公司專案中,有個儲存表單的頁面有很多必填欄位校驗。而現在增加需求,點選儲存的時候,自動跳轉到必填的地方。擼起袖子幹起來 將要跳轉的HTML頁面 加個ref <template> <div class="app-container calend

vue頁面應用頁面跳轉

vue中單頁面應用頁面跳轉 <router-link :to="{ path: '/map'}"> <el-button type="success" @click="deployStation">批量部署基站</el-button></ro

vue-cli應用路由跳轉後scrollTop問題

VUE開發單頁應用時,頁面不會重新載入,預設返回的是頁面原先的滾動位置。如果要返回頂部,或者其他位置就需要一些配置了。 方式1 created或者mounted里加上  window.scrollTop(0,0); 方式2(官網提供方法) 使用前端路由,當切換到新路由