解決彈出層滾動穿透的問題

一個棘手的問題:彈出層的滾動穿透,即彈出層滾動,那麼被彈出層覆蓋的下面的內容區域也會進行滾動。彈出層我是用的view標籤然後使用的position:fixed進行的定位;說一下我的解決思路:

一:當彈出層裏面無滾動的時候:

可以在遮罩的view標籤上定義一個防止事件冒泡的方法:

1

2

3

4

5

6

catchtouchmove="preventD"

 

 

 preventD() {

    return

  }

    二:當彈出層有滾動的時候:

只需要在打開遮罩的時候給最外層的view標籤加上一個nowarp的標籤,關閉彈出層的時候吧class移除掉就可以了,

1

2

3

4

5

6

7

8

9

.noscroll {

  top: 0px;

  left: 0px;

  width: 100%;

  height: 100%;

  overflow: hidden;

  position: fixed;

  z-index: 0;

}

 H5然後還有一個鍵盤彈起不回彈,焦點錯位的問題(注意原生)

<input type="text"  v-model="enough" @blur="clearSrcoll()">


//鍵盤頂起頁面後隱藏不回彈解決方案
  clearSrcoll() {
    var currentPosition, timer;
    var speed = 1; //頁面滾動距離
    timer = setInterval(function() {
      currentPosition =
        document.documentElement.scrollTop || document.body.scrollTop;
      currentPosition -= speed;
      window.scrollTo(0, currentPosition); //頁面向上滾動
      currentPosition += speed; //speed變量
      window.scrollTo(0, currentPosition); //頁面向下滾動
      clearInterval(timer);
    }, 1);
  },

 

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