useScroll
追踪特定 DOM 节点的滚动位置
API
const [x, y, clear] = useScroll(target, delay)
Params
| 参数名 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| target | 监听滚动的 DOM,可使用 css 选择器 | String | Element | Ref<Element | null> | |
| delay | 节流延时时间(为 0 则不使用节流) | number | 200 |
Result
| 参数名 | 描述 | 类型 |
|---|---|---|
| x | element.scrollLeft | DeepReadonly<Ref<number>> |
| y | element.scrollTop | DeepReadonly<Ref<number>> |
| clear | 解绑监听事件 | () => void |
Example
x: 0
y: 0
滚动下方粉色块观测x和y变化
Code
<template>
<p>x: {{ x }}</p>
<p>y: {{ y }}</p>
<p>滚动下方粉色块观测x和y变化</p>
<div ref="target" style="border: 1px solid #ccc;width: 200px; height: 200px; overflow: auto;">
<div style="width: 300px; height: 300px; background: pink;"></div>
</div>
</template>
<script>
import { useScroll } from 'vue-compositions'
import { ref } from 'vue'
export default {
setup() {
const target = ref(null)
const [x, y] = useScroll(target)
return {
x,
y,
target
}
}
}
</script>