移動(dòng)端網(wǎng)站開發(fā)常見問(wèn)題—滾動(dòng)穿透
對(duì)移動(dòng)端網(wǎng)站開發(fā)不了解的人來(lái)說(shuō),手機(jī)端網(wǎng)站可能就是直接在手機(jī)上打開網(wǎng)站,并沒有跟電腦端有什么實(shí)際的不同。但是今天尚武科技的網(wǎng)站制作工程師,則在這里為大家準(zhǔn)備了,關(guān)于移動(dòng)端網(wǎng)站開發(fā)中常見問(wèn)題的講解,可以讓大家更好的深入了解。
滾動(dòng)穿透是指在移動(dòng)端當(dāng)有 fixed 遮罩背景和彈出層時(shí),在屏幕上滑動(dòng)能夠滑動(dòng)背景下面的內(nèi)容。其他網(wǎng)站上整理了解決方案,但有些還是存在一定的問(wèn)題:
設(shè)置overflow為hidden
即當(dāng)彈出層彈出時(shí)在html上添加.modal-open,禁用 html 和 body 的滾動(dòng)條,但實(shí)際用上就會(huì)發(fā)現(xiàn):
1.由于 html 和 body的滾動(dòng)條都被禁用,彈出層后頁(yè)面的滾動(dòng)位置會(huì)丟失,需要用 js 來(lái)計(jì)算原來(lái)滾動(dòng)的位置,在彈出時(shí)保持滾動(dòng)位置;
2.在頁(yè)面的背景還是能夠有滾動(dòng)的效果
js 之 touchmove + preventDefault
即通過(guò)阻止移動(dòng)端touchmove事件,但實(shí)際用上會(huì)發(fā)現(xiàn)彈出層需要滾動(dòng)時(shí)也會(huì)被阻止。
最后解決方案:position: fixed
這種方式同樣當(dāng)彈出層彈出時(shí)滾動(dòng)條會(huì)丟失,所以還需要使用js來(lái)保存滾動(dòng)條的位置,在關(guān)閉彈出層時(shí)將滾動(dòng)位置還原;
以上就是石家莊尚武科技的移動(dòng)端網(wǎng)站建設(shè)工程師為大家解決“關(guān)于移動(dòng)端網(wǎng)站開發(fā)中滾動(dòng)穿透問(wèn)題”的相關(guān)介紹,幫助大家可以更好的了解我們的網(wǎng)站制作與開發(fā)。