evinma / tua-body-scroll-lock

🔐 Body scroll locking that just works with everything

Home Page:https://tuateam.github.io/tua-body-scroll-lock/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tua-body-scroll-lock

inspired by body-scroll-lock

dependencies

Downloads per month Version Next Version License

English | 简体中文

Introduction

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

  • 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

Node Package Manager(recommended)

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

CDN

example code
<!-- unpkg -->
<script src="https://unpkg.com/tua-body-scroll-lock"></script>

<!-- jsdelivr -->
<script src="https://cdn.jsdelivr.net/npm/tua-body-scroll-lock"></script>
example code
<!-- unpkg -->
<script src="https://unpkg.com/tua-body-scroll-lock/dist/tua-bsl.umd.min.js"></script>

<!-- jsdelivr -->
<script src="https://cdn.jsdelivr.net/npm/tua-body-scroll-lock/dist/tua-bsl.umd.min.js"></script>
example code
<!-- unpkg -->
<script type="module">
    import { lock, unlock } from 'https://unpkg.com/tua-body-scroll-lock/dist/tua-bsl.esm.browser.js'

    lock()
    unlock()
</script>

<!-- jsdelivr -->
<script type="module">
    import { lock, unlock } from 'https://cdn.jsdelivr.net/npm/tua-body-scroll-lock/dist/tua-bsl.esm.browser.js'

    lock()
    unlock()
</script>
example code
<!-- unpkg -->
<script type="module">
    import { lock, unlock } from 'https://unpkg.com/tua-body-scroll-lock/dist/tua-bsl.esm.browser.min.js'

    lock()
    unlock()
</script>

<!-- jsdelivr -->
<script type="module">
    import { lock, unlock } from 'https://cdn.jsdelivr.net/npm/tua-body-scroll-lock/dist/tua-bsl.esm.browser.min.js'

    lock()
    unlock()
</script>

Usage

Normal

import { lock, unlock } from 'tua-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 '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

💻 📖 🚇 🌍
li2go
li2go

💻 🐛
songyan,Wang
songyan,Wang

💻 🐛
Даниил Пронин
Даниил Пронин

🐛

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

About

🔐 Body scroll locking that just works with everything

https://tuateam.github.io/tua-body-scroll-lock/

License:MIT License


Languages

Language:JavaScript 62.8%Language:HTML 37.2%