在 iOS Safari 上停用捲軸

雖然好像已經是第二次碰上這個問題,但上次沒把相關東西記錄下來,導致今天又花了大概半天重新找資料,趁現在還有印象趕快來寫一下。

willmcpo/body-scroll-lock

使用上就三行

1
2
3
4
5
const targetElement = document.querySelector("#someElementId");

bodyScrollLock.disableBodyScroll(targetElement);

bodyScrollLock.enableBodyScroll(targetElement);

enable、disable很好懂,比較要注意的是,targetElement 不能選到body或html上,如果要做全域的禁止捲動的話,要把target設定到任意一個元素上,並且給那個元素overflow: scroll的 CSS 即可使用。