html-body-scroll-lock

Body scroll locking that just works with everything

Usage no npm install needed!

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

README

html-body-scroll-lock

inspired by body-scroll-lock

dependencies Downloads per month Version Next Version License

Introduction

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

Why not body-scroll-lock(BSL)?

  • 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

Install

Node Package Manager(recommended)

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

Usage

Normal

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

lock()
unlock()

TargetElement needs 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 'html-body-scroll-lock'

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

lock(targetElement)
unlock(targetElement)

The targetElement is not required on the PC and Android.