ultimate-body-scroll-lock

Body scroll locking that just works with everything

Usage no npm install needed!

<script type="module">
  import ultimateBodyScrollLock from 'https://cdn.skypack.dev/ultimate-body-scroll-lock';
</script>

README

Fork of https://github.com/tuateam/tua-body-scroll-lock

Fixes the scroll locking on desktop

tua-body-scroll-lock

inspired by body-scroll-lock

dependencies Downloads per month Version License

English | 简体中文

Introduction

tua-body-scroll-lock enables body scroll locking for everything.

Why not body-scroll-lock?

  • Doesn't work on Android webview
  • Doesn't work on PC with mouse wheel
  • Doesn't work on iOS, if you touch somewhere instead of targetElement
  • Must pass targetElement, even if it's not necessary

Try This

Install

$ npm i -S tua-body-scroll-lock
# OR
$ yarn add tua-body-scroll-lock

Usage

normal

import { lock, unlock } from 'tua-body-scroll-lock'

lock()
unlock()

targetElement need scrolling(iOS only)

In some scenarios, when scrolling is prohibited, some elements still need to scroll, at this point, pass the targetElement.

import { lock, unlock } from 'tua-body-scroll-lock'

const targetElement = document.querySelector("#someElementId")

lock(targetElement)
unlock(targetElement)

The targetElement is not required on the PC and Android.

Test

testLink

bodyScrollLock

Contributors

Thanks goes to these wonderful people (emoji key):

evinma
evinma

💻 📖
StEve Young
StEve Young

📖

This project follows the all-contributors specification. Contributions of any kind welcome!