vue 及 js 微信中 頁面輸入框被鍵盤頂上去之後,點擊域錯誤 彈出框fixed absolute 定位的輸入框 鍵盤彈出導致點擊域失效 解決辦法

造成這種問題的原因是body沒有復位,所以把body 復位就可以了。

解決思路:1、input獲取焦點的時候記住當前滾動的位置,2、input失去焦點的時候滾動到之前的位置。(親測有效)。

附vue 代碼,其他框架可以依據該思路修改。

PageScroll:0,// 位置  這個在data 裏面定義變量
inputLoseBlur() {
 setTimeout(() => {
  window.scrollTo(0, this.PageScroll);
 }, 100);
},
inputLoseFocus() {
 this.PageScroll = this.GetPageScroll()
},
GetPageScroll(){
 var y;
 if (window.pageYOffset) {    // all except IE
  y = window.pageYOffset;
 } else if (document.documentElement && document.documentElement.scrollTop) {    // IE 6 Strict
  y = document.documentElement.scrollTop;
 } else if (document.body) {    // all other IE
  y = document.body.scrollTop;
 }
 return y
},

一共三個方法,第一個是失去焦點的時候滾動到之前位置,第二個是獲取焦點的時候將當前位置的數據賦值給變量,第三個是獲取當前位置。

<mt-field label="" placeholder="請輸入手機號碼" @focus.native.capture="inputLoseFocus" @blur.native.capture="inputLoseBlur" type="tel" v-model="loginMsg.mobile"></mt-field>

上面是使用方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章