Mask-Scroll
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供米脂企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站建設、成都網(wǎng)站制作、H5場景定制、小程序制作等業(yè)務。10年已為米脂眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
> 原碼地址 *
蒙層防穿透問題
> 蒙層穿透就是,當你用fixed 布局讓蒙層顯示的時候, 手指滑動屏幕會出現(xiàn)底部內(nèi)容也滑動的現(xiàn)象. 如圖:
當蒙層出現(xiàn)的時候,你滾動屏幕,底部內(nèi)容也一起跟著滾動。 這就是蒙層穿透, 也可以叫 '滾動穿透'. 當然出現(xiàn)這種情況, 用戶體驗當然是不好的了。 所以作為一個有點追求的工程師當然是不允許這種情況的發(fā)生了(手動狗頭...)
## 解決方案
這種要分情況,
1. 當彈窗沒有滾動條的時候。
直接監(jiān)聽 catch:touchmove 方法, 然后直接返回就可以了。
代碼可以去看fixed 目錄下的文件
主要代碼:
*// wxml* *// css* .fixed-mask { position: fixed; left: 0; top: 0; height: 100vh; width: 100vw; background: #333; opacity: 0.8; z-index: 2; } .mask-container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .mask__item { margin: 0 auto; background-color: #ff0015; text-align: center; width: 500rpx; height: 500rpx; line-height: 500rpx; margin-bottom: 20rpx; } *// js* stopMove () { return; } I am {{dogName}}
效果如下:
上面是當彈窗沒有滾動條的情況, 當彈窗出現(xiàn)滾動條的時候。
哦豁, 完蛋, 彈窗不能滾動了。
2. 當彈窗有滾動條的時候
方法一:
動態(tài)給底部滾動的元素 添加固定定位。也就是當出現(xiàn)彈窗的時候添加一個 class 樣式類
效果如圖:
代碼在scroll1 文件夾。
*// css* .bottom-fixed { position: fixed; left: 0; top: 0; overflow: hidden; } *// wxml*
大家可以看到 因為底部元素給固定到頁面頂部了, 而不是你點擊彈窗時出現(xiàn)的位置。目前自己還沒有找到解決方法。 如果大佬有會的, 不吝賜教。。
*方法二:*
> scroll-view 設置高度 以及縱向滾動方向。
不過scroll-view 會有一些bug
詳情查看
代碼在scrooll 文件夾
效果如下圖:
總結(jié)
以上所述是小編給大家介紹的解決微信小程序中的滾動穿透問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!