コンテンツへスキップ

useScrollLock

カテゴリ
エクスポートサイズ
915 B
最終変更日
先週

要素のスクロールをロックします。

デモ

左上
左下
右上
右下
スクロール
isLocked false

使用方法

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>

ディレクティブの使用

この関数は、`@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.dokyumento.jp/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

変更ログ

v12.0.0-beta.1 2024/11/21
0a9ed - feat!: Vue 2サポートの削除、バンドルの最適化、クリーンアップ (#4349)
v10.10.0 2024年5月27日
d9ee4 - 修正: function unlockが動作しない (#3847)
v10.9.0 2024年2月27日
74e86 - 修正: initialOverflowが動作しない (#3798)
v10.6.0 2023年11月9日
03866 - 修正(onScrollLock): elの初期overflow値をキャッシュする (#3527)
v10.4.0 2023年8月25日
8acdb - 修正: windowまたはdocumentの使用をサポートする (#3319)
v10.2.0 2023年6月16日
cdc28 - 修正: スクロール可能な子要素のチェックを修正する (#3065)
v10.0.0-beta.4 2023年4月13日
4d757 - 機能追加(types)!: MaybeComputedRefMaybeRefOrGetterに名前変更
10e98 - 機能追加(toRef)!: resolveReftoRefに名前変更
0a72b - 機能追加(toValue): resolveUnreftoValueに名前変更
v9.13.0 2023年2月18日
7e590 - 修正: overflow: autoを持つ親要素を検出する (#2699)
v9.10.0 2023年1月3日
c9a9a - 修正: iOSのtouchmoveバグを修正する (#2362)

MITライセンスの下でリリースされています。