useScrollLock
锁定元素的滚动。
演示
左上
左下
右上
右下
滚动我
isLocked false
用法
vue
<script setup lang="ts">
import { useScrollLock } from '@vueuse/core'
import { useTemplateRef } from 'vue'
const el = useTemplateRef<HTMLElement>('el')
const isLocked = useScrollLock(el)
isLocked.value = true // lock
isLocked.value = false // unlock
</script>
<template>
<div ref="el" />
</template>
指令用法
此函数也通过
@vueuse/components
包提供了指令版本。 了解更多关于用法的信息。
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>
类型声明
typescript
/**
* Lock scrolling of the element.
*
* @see https://vueuse.org.cn/useScrollLock
* @param element
*/
export declare function useScrollLock(
element: MaybeRefOrGetter<
HTMLElement | SVGElement | Window | Document | null | undefined
>,
initialState?: boolean,
): WritableComputedRef<boolean, boolean>
源代码
贡献者
更新日志
v12.8.0
于 2025/3/5v12.3.0
于 2025/1/259f75
- feat(toValue): 弃用来自 @vueuse/shared
的 toValue
,支持 Vue 的原生类型v12.0.0-beta.1
于 2024/11/21v10.10.0
于 2024/5/27v10.9.0
于 2024/2/27v10.6.0
于 2023/11/9v10.4.0
于 2023/8/25v10.2.0
于 2023/6/16v10.0.0-beta.4
于 2023/4/134d757
- feat(types)!: 将 MaybeComputedRef
重命名为 MaybeRefOrGetter
10e98
- feat(toRef)!: 将 resolveRef
重命名为 toRef
0a72b
- feat(toValue): 将 resolveUnref
重命名为 toValue
v9.13.0
于 2023/2/18