1. 程式人生 > >H5頁面ios鍵盤遮擋input問題

H5頁面ios鍵盤遮擋input問題

完美方案

// 解決輸入法被啟用時 底部輸入框被遮住問題
<textarea type="text" value=""  ref="textarea"  v-model="newMsg"  v-on:focus="focusIpt" v-on:blur="blurIpt"  rows="1" />
data(){
  return{
     timer:null
 }
}
methods: {
   focusIpt() { // 解決輸入框被啟用時被鍵盤遮住問題
      this.timer = setInterval(function() {
          document.body.scrollTop = document.body.scrollHeight
       }, 100)
   },
   blurIpt() {
       clearInterval(this.timer)
   }
},
updated(){
       let pannel = this.$refs.textarea;
	//監聽輸入框,動態增加輸入框高度
       pannel.style.height='auto';  
       pannel.style.height = pannel.scrollHeight + 'px';  
}

注意,滑動頁面時要 clearInterval(this.timer)
-------------------------------------------------------------------------------------------------------------------------------

最初的做法,用div代替textarea,既沒有v-on:focus,也沒有v-on:blur,不推薦用div代替textarea,上面已經完美解決input框被擋住問題,也解決textarea自適應高度問題

參考很多資料,目前測試有效,不完全好用,但是解決遮擋問題的方法

<div class="div-textarea" v-model="newMsg" ref="textarea" tabindex="0"  

contenteditable="true"></div>

methods:{
myFocus(){
     let pannel = this.$refs.textarea;
//     pannel.focus();
       console.log("focus")
       setTimeout(function(){
         pannel.scrollIntoView(true);
         pannel.scrollIntoViewIfNeeded();
          document.body.scrollTop = document.body.scrollHeight;
       },100);
//     setInterval( () => {
//     document.body.scrollTop = document.body.scrollHeight;
//     },300)
  }
},
updated(){
     this.myFocus()
}
參考 http://blog.csdn.net/u010884123/article/details/77143228

相關推薦

H5頁面ios鍵盤遮擋input問題

完美方案// 解決輸入法被啟用時 底部輸入框被遮住問題 <textarea type="text" value="" ref="textarea" v-model="newMsg" v-on:focus="focusIpt" v-on:blur="blurIpt"

iphone5下軟鍵盤遮擋input輸入框

現象描述:iphone手機微信頁面,用position: fixed;定位的input或textarea輸入框,在獲取輸入焦點時,會被彈出的輸入法軟鍵盤遮擋,導致使用者無法看到輸入框,效果如圖: 簡化測試環境:刪除頁面其它元素,只保留輸入框所在的評論框及最

iOS 鍵盤遮擋輸入框解決方案

// 方法一 - (void)addNotification { [[NSNotificationCenterdefaultCenter] addObserver:selfselector:

移動端頁面input輸入框被鍵盤遮擋問題

abs 無法 gin 區域 失效 -1 osi mit main <body class="layout-fixed"> <!-- fixed定位的頭部 --> <header> </he

H5頁面不可複製文字,iosinput按鈕不能正常輸入字元

問題: 手機端防止出現文字可複製 方法: 設定css樣式 * { moz-user-select: -moz-none; -moz-user-select: none; -o-user-selec

蘋果系統 IOS 12 的H5 BUG :鍵盤頁面頂上去了,底下留有一塊空白區域

蘋果以往的系統是沒問題的,一般情況下,點選input喚起鍵盤後是會自動顯示到輸入框的地方,然後收起鍵盤頁面就會恢復到底部。 但是如果蘋果是已經更新到最新的IOS12的話就會發生一個BUG ,就是鍵盤喚起後把頁面頂上去,然後把鍵盤收回去後頁面卻回不來了,保持著被頂起的狀態,原本鍵盤的地方留出一塊空白。 BU

H5頁面背景圖被鍵盤擠壓移動了位置解決方法

window .com nbsp mage .cn 最終 png 判斷 tro body{width:100%,height:100%},下圖藍色背景放在body裏面。我這個是微信端打開的H5鏈接 問題:手機要輸入手機號或者密碼,會彈出手機的鍵盤,然後就變成下圖。鍵盤背景圖

ios應用內嵌h5頁面數據自動變色識別為手機號碼的解決方法——手機號碼撥號禁用IOS手機頁面數字自動識別為手機號

log 數字 bsp 標簽 one .com div meta name 現象如下,ios應用內嵌h5頁面,本來是設置了白色的數字,兩三秒之後會自動變為黑色,然後點擊的時候就會彈出是否撥號的提示; 解決方法,添加如下meta標簽,即可解決: <meta

js控制ios端的input/textarea元素失去焦點時隱藏鍵盤

out ios cas browser 焦點 agent 解決辦法 col area 同事在測試產品時發現這樣一個:“某些頁面擊完input框,在點空白處時,iOS設備的鍵盤不能隱藏並且焦點也不會失去” 帶著這個問題我進行了測試,發現在安卓的設備上並沒有這種問題出現。 於是

IOS系統下虛擬鍵盤遮擋文本框問題的解決

end 鍵盤遮擋 inter ntb doc androi 之前 項目 func 最近在項目中發現同樣的代碼在Android端微信網頁中點擊文本框喚出的虛擬鍵盤不會遮擋文本框,但是在IOS端的微信網頁中點擊文本框喚出的鍵盤卻在大部分情況下會遮擋文本框 經過高人指點,這個問

H5頁面ios 端滑動不流暢的問題

多個 滑動 系統 -m hidden down 絕對定位 touch mark IOS系統的慣性滑動效果非常6,但是當我們對div加overflow-y:auto;後是不會出這個效果的,滑動的時候會感覺很生澀。怎麽辦? 方案一: 在滾動容器內加-webkit-overfl

h5頁面實戰——與andriod和ios的交互

直接 解析 實戰 andriod 事件 通過 獲得 如何判斷 字符 首先需要我們h5頁面需要做一些匹配。比如:如何判斷當前手機是andriod還是ios, andriod攻城獅和ios工程師,一般會定義事件的方法。我們套用他們方法就可以了。 那麽為什麽我要寫

關於頁面點擊搜索框時,虛擬鍵盤遮擋搜索框的問題

word () func ner log 頁面 window var bottom //當點擊搜所框時是頁面滾動$(‘#keyword‘).focus(function(event) { setTimeout((function(){ var i=0;

關於移動端輸入鍵盤遮擋頁面

驗證碼 tran transform col 移動端 light pre brush AR 問題顯示: 當吊起手機的軟鍵盤的時候 會遮住驗證碼輸入內容,造成盲輸入 問題解決: 在包裹 登錄的父元素樣式上加: .login{ position: fixed;

Android軟鍵盤彈出,覆蓋h5頁面輸入框問題

問題 過多 繼承 col 鍵盤 代碼 chrom 技術 fff 之前我們在使用vue進行 h5 表單錄入的過程中,遇到了Android軟鍵盤彈出,覆蓋 h5頁面 輸入框 問題,在此進行回顧並分享給大家: 系統:Android 條件:當輸入框在可視區底部或者偏下的位置 觸發

微信內置瀏覽器瀏覽H5頁面彈出的鍵盤遮蓋文本框的解決辦法

document android 微信內置瀏覽器 list 內置 time In nbsp out 最近在做微信公眾號的內嵌頁面,發現點擊輸入框時鍵盤蓋住文本框,找到一段代碼解決了這個問題。 iOS和android手機都已親測,需要的可以直接拷貝到代碼中使用。 js代碼

iOS解決鍵盤遮擋輸入框問題

導讀:UITextField(輸入框)獲取焦點後會彈出鍵盤,有時候鍵盤會遮擋住輸入框,影響使用者互動,所以需要在彈出鍵盤的時候將檢視上移至不會遮擋的位置。下面主要講述幾種常見解決方法。 一、彈出鍵盤時,將整個檢視上移:監聽鍵盤事件 //監聽鍵盤 //1、鍵盤彈出時

js h5頁面調起App(IOS 和android)的實現方法

js h5頁面調起App(IOS 和android)的實現方法 第一次寫這個:我們的app是由原聲和h5組成的,當用戶使用瀏覽器開啟我們的頁面時我們會引導使用者使:開啟App 下載App 剛開始我是使用定時器來實現的,當用戶點選了開啟App經過一定時間之後沒有反應,則我們認為她調起App

IOS h5頁面採坑記錄

1. input 輸入框樣式IOS上回會有個很醜的內邊框 新增  -webkit-appearance: none;  就可以去掉 input { height: 100%; width: 100%; box-shadow: none; ou

android,ios與web互動-—APP使用H5頁面

  一、ios與H5之間的互動 <!DOCTYPE html>   <html>   <meta charset="utf-8">