移動端穿透問題

2022-08-19 15:09:10 字數 1028 閱讀 8648

附上完整的解決方案參考鏈結(

在彈出層加乙個父級元素遮罩層,阻止滾動事件,但是問題是遮罩層所有子元素(彈出層)也不能滾動。

方法一:那麼平級設定mask,繫結事件-》雖然滾動mask,頁面沒有穿透滾動問題,但是當彈出層滾動到頭繼續拉時頁面會滾動

方法二:彈出時body設定overflow:hidden,真機上面需要加上position:fixed,由於給了fixed定位,頁面會彈上最頂部,然後記錄當前高度,彈出層消失時還原body設定。但是頁面頂部的banner會受到壓縮,變形??

方法三:最終使用的是自己通過touchmove,touchstart,touchend等方法模擬滾動,缺點是沒有手機原生的滾動順滑。

實現**如下

var endpst = {}, //

結束位置

elepst={},

start={}; //

初始位置

var maxtop = $('.content').height()-$('.contents').height();

$('.contents').on('touchstart', function

(event) ;

elepst =;

})$('.contents').on('touchmove', function

(event) ; //

手移動的 偏移位置

endpst['top'] = (elepst.y + offset.y)offset.y);

endpst['top'] = endpst['top']> 0? 0 :endpst['top'];

this.style.top = endpst.top + 'px';

})$('.contents').on('touchend', function

(e) )

按照標籤的語義化,button標籤是用來點選的。而div,自己體會哈。

給div加個屬性 cursor:pointer;

在蘋果裝置上onclick就有效了

移動端滾動穿透問題

一 body。一般pc端這樣就行了,但在移動端可就不行了,因為他有touchmove。二 可以阻止彈層的touchmove事件,但如果你的彈層內的內容需要滑動,這種方法pass document.body.addeventlistener touchmove function e 三 後來找到乙個比...

移動端 pc端,遮罩層滾動穿透問題

常見的解決方式有一下三種 model open遮罩層顯示時將 modal open 新增到 html上,刪除多餘一頁的部分,禁止頁面滾動。遮罩層隱藏時,移除.modal open,恢復頁面滾動即可 缺點 實現滾動條無法滾動 var mo function e 禁止滑動 function stop 取...

VUE移動端 模態框滾動穿透問題

1 v show顯示模態框 2 watch 監聽模態框 的變化 watch 3 在ishidden值發生變化的時候,a 阻止瀏覽器的預設行為,同時禁止頁面滾動 scrollstop document.body.style.overflow hidden document.addeventlisten...