useScrollLock ​
Lock scrolling of the element.
Demo ​
TopLeft
BottomLeft
TopRight
BottomRight
Scroll Me
isLocked false
Usage ​
vue
<script setup lang="ts">
import { useScrollLock } from '@vueuse/core'
const el = ref<HTMLElement | null>(null)
const isLocked = useScrollLock(el)
isLocked.value = true // lock
isLocked.value = false // unlock
</script>
<template>
<div ref="el" />
</template>
Directive Usage ​
This function also provides a directive version via the
@vueuse/components
package. Learn more about the usage.
vue
<script setup lang="ts">
import { vScrollLock } from '@vueuse/components'
const data = ref([1, 2, 3, 4, 5, 6])
const isLocked = ref(false)
const toggleLock = useToggle(isLocked)
</script>
<template>
<div v-scroll-lock="isLocked">
<div v-for="item in data" :key="item">
{{ item }}
</div>
</div>
<button @click="toggleLock()">
Toggle lock state
</button>
</template>
Type Declarations ​
typescript
/**
* Lock scrolling of the element.
*
* @see https://vueuse.org/useScrollLock
* @param element
*/
export declare function useScrollLock(
element: MaybeRefOrGetter<
HTMLElement | SVGElement | Window | Document | null | undefined
>,
initialState?: boolean,
): WritableComputedRef<boolean, boolean>
Source ​
Contributors ​
Anthony Fu
webfansplz
Anthony Fu
Ayaka Rizumu
Coder Poet
YASS
Doctorwu
Zhaolin Liang
Valery
Dominik Pschenitschni
Robin Scholz
Jelf
wheat
Changelog ​
v10.10.0
on 5/27/2024v10.9.0
on 2/27/2024v10.6.0
on 11/9/2023v10.4.0
on 8/25/2023v10.2.0
on 6/16/2023v10.0.0-beta.4
on 4/13/20234d757
- feat(types)!: rename MaybeComputedRef
to MaybeRefOrGetter
10e98
- feat(toRef)!: rename resolveRef
to toRef
0a72b
- feat(toValue): rename resolveUnref
to toValue
v9.13.0
on 2/18/2023v9.10.0
on 1/3/2023