欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue 解決mintui彈窗彈起來,底部頁面滾動bug問題

 更新時間:2020年11月12日 11:32:11   作者:vieber  
這篇文章主要介紹了vue 解決mintui彈窗彈起來,底部頁面滾動bug問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

經(jīng)過dom層層注釋縮小反饋終于找到問題所在。

問題經(jīng)過

我在彈起彈窗的時候,設置了popupVisible為true

然后觸發(fā)了vue的updated生命周期鉤子函數(shù)

然后我在這個函數(shù)里面做了去this.$refs.container.offsetHeight導致頁面重繪

然后就導致了底部頁面向上滾動

解決辦法

去掉updated函數(shù)里面的重繪方法

補充知識:項目總結(jié)之關于vue中使用mint-ui的mt-popup出現(xiàn)滾動穿透問題的解決總結(jié)

說實話,使用Mint-ui這個ui組件的過程中遇到了很多問題,這個ui組件問題真多。

先說今天的主題吧,我在使用popup選擇框的時候和datepicker時間選擇器的時候出現(xiàn)了滾動穿透的問題,特別是在ios上面。

找了好多方法,最后同事給出了一個好的方法,很簡潔,于是就想著總結(jié)下來。

防止?jié)L動穿透 只需加入@touchmove.native.stop.prevent 阻止默認根元素的默認事件就可以了,native是關鍵,這個表示根元素的意思,也就是body或者html

代碼如下:

Popup組件:

<mt-popup
     v-model="popupVisible"
     position="bottom">
     ...
  </mt-popup>
  // 防止?jié)L動穿透 只需加入@touchmove.native.stop.prevent 阻止默認根元素的默認事件就可以了native是關鍵,這個表示根元素的意思,也就是body或者html
  <mt-popup
   v-model="popupVisible"
   position="bottom"
   @touchmove.native.stop.prevent>
   ...
  </mt-popup>

注意當mt-popup中還有div等子元素的時候,一定要注意,這個時候可能會有一些問題,會出現(xiàn)mt-popup這個元素也滾動不了的情況,所以說如果mt-popup本身不需要滾動的話,加了@touchmove.native.stop.prevent,底部頁面就不會跟著滑動,如果mt-popup里面有滾動條需要滾動的話,可能就滾動不了,這個時候需要采取常規(guī)方法了,如下:

// 解決方式,通過監(jiān)聽popupVisible變量,在彈窗出現(xiàn)后禁止body節(jié)點touchMove事件,彈窗消失后恢復body節(jié)點的touchMove事件

 //html 如下
   <mt-popup
     v-model="popupVisible"
     position="bottom">
     ...
   </mt-popup>
  // js 如下
  const handler = function(e) {
    e.preventDefault();
  }
  
  // vue實例內(nèi)
  watch: {
    popupVisible: function (val) {
     if(val) {
       document.getElementsByTagName('body')[0].addEventListener('touchmove', this.handler, { passive: false });
     } else {
       document.getElementsByTagName('body')[0].removeEventListener('touchmove', this.handler, { passive: false });
     }
    }
  }

Datetime Picker:

 <mt-datetime-picker
    ref="picker"
    type="time"
    v-model="pickerValue"
    @touchmove.native.stop.prevent>
 </mt-datetime-picker>

對于時間組件加了@touchmove.native.stop.prevent,選擇時間滾動的時候底部頁面就不會跟著滾動了,很完美。

@touchmove.native.stop.prevent可以使我們省好多事,用起來吧!

以上這篇vue 解決mintui彈窗彈起來,底部頁面滾動bug問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue實現(xiàn)手風琴效果

    vue實現(xiàn)手風琴效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)手風琴效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 深入解析el-col-group強大且靈活的Element表格列組件

    深入解析el-col-group強大且靈活的Element表格列組件

    這篇文章主要為大家介紹了el-col-group強大且靈活的Element表格列組件深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • vue3中h函數(shù)的常用使用方式匯總

    vue3中h函數(shù)的常用使用方式匯總

    其實h()函數(shù)和createVNode()函數(shù)都是創(chuàng)建dom節(jié)點,他們的作用是一樣的,下面這篇文章主要給大家介紹了關于vue3中h函數(shù)的常用使用方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • vue-cli在 history模式下的配置詳解

    vue-cli在 history模式下的配置詳解

    這篇文章主要介紹了vue-cli在 history模式下的配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Vue 動態(tài)添加路由及生成菜單的方法示例

    Vue 動態(tài)添加路由及生成菜單的方法示例

    這篇文章主要介紹了Vue 動態(tài)添加路由及生成菜單的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • Vue用mixin合并重復代碼的實現(xiàn)

    Vue用mixin合并重復代碼的實現(xiàn)

    這篇文章主要介紹了Vue用mixin合并重復代碼的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • vue使用pdfjs-dist+fabric實現(xiàn)pdf電子簽章的思路詳解

    vue使用pdfjs-dist+fabric實現(xiàn)pdf電子簽章的思路詳解

    最近領導提了一個新需求:仿照e簽寶,實現(xiàn)pdf電子簽章,本文給大家介紹vue使用pdfjs-dist+fabric實現(xiàn)pdf電子簽章的思路,感興趣的朋友一起看看吧
    2023-12-12
  • vue-cli 自定義指令directive 添加驗證滑塊示例

    vue-cli 自定義指令directive 添加驗證滑塊示例

    本篇文章主要介紹了vue-cli 自定義指令directive 添加驗證滑塊示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • vue中拆分組件的實戰(zhàn)案例

    vue中拆分組件的實戰(zhàn)案例

    最近在學vue,試著寫個單頁應用,在寫組件,拆分組件時遇到一些困惑,下面這篇文章主要給大家介紹了關于vue中拆分組件的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • VUE PC端可拖動懸浮按鈕的實現(xiàn)代碼

    VUE PC端可拖動懸浮按鈕的實現(xiàn)代碼

    這篇文章主要介紹了VUE PC端可拖動懸浮按鈕的實現(xiàn)代碼,通過實例代碼介紹了父頁面引用的方法,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2024-02-02

最新評論