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(官網提供方法) 使用前端路由,當切換到新路由