Skip to content

useScrollLock

类别
导出体积
915 B
上次更改
2 minutes ago

锁定元素的滚动。

示例

左上角
左下角
右上角
右下角
滚动
是否锁定 false

用法

vue
<script setup lang="ts">
import { useScrollLock } from '@vueuse/core'

const el = ref<HTMLElement | null>(null)
const isLocked = useScrollLock(el)

isLocked.value = true // 锁定
isLocked.value = false // 解锁
</script>

<template>
  <div ref="el" />
</template>

指令用法

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()">
    切换锁定状态
  </button>
</template>

类型声明

typescript
/**
 * 锁定元素的滚动。
 *
 * @see https://vueuse.org/useScrollLock
 * @param element
 */
export declare function useScrollLock(
  element: MaybeRefOrGetter<
    HTMLElement | SVGElement | Window | Document | null | undefined
  >,
  initialState?: boolean,
): WritableComputedRef<boolean, boolean>

源码

源码演示文档

贡献者

Anthony Fu
一纸忘忧
webfansplz
Anthony Fu
Ayaka Rizumu
Coder Poet
YASS
Doctorwu
Zhaolin Liang
Valery
Dominik Pschenitschni
Robin Scholz
Jelf
wheat

更新日志

v10.10.0 on 5/27/2024
d9ee4 - fix: function unlock does not work (#3847)
v10.9.0 on 2/27/2024
74e86 - fix: initialOverflow is not working (#3798)
v10.6.0 on 11/9/2023
03866 - fix(onScrollLock): cache the el initial overflow value (#3527)
v10.4.0 on 8/25/2023
8acdb - fix: support using window or document (#3319)
v10.2.0 on 6/16/2023
cdc28 - fix: fix scrollable children check (#3065)
v10.0.0-beta.4 on 4/13/2023
4d757 - 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/2023
7e590 - fix: detect parent with overflow auto (#2699)
v9.10.0 on 1/3/2023
c9a9a - fix: fix iOS touchmove bug (#2362)