init: 橘视厅酒店版会员系统前端
This commit is contained in:
31
src/composables/useFlashScrollbar.ts
Executable file
31
src/composables/useFlashScrollbar.ts
Executable file
@@ -0,0 +1,31 @@
|
||||
import { ref, onUnmounted } from 'vue'
|
||||
|
||||
const DEFAULT_HIDE_AFTER_MS = 900
|
||||
|
||||
/** 滚动条默认隐藏,发生滚动后短暂显示,停止滚动一段时间后自动隐藏 */
|
||||
export function useFlashScrollbar(hideAfterMs = DEFAULT_HIDE_AFTER_MS) {
|
||||
const scrollbarVisible = ref(false)
|
||||
let hideTimer: ReturnType<typeof setTimeout> | null = null
|
||||
|
||||
function clearHideTimer() {
|
||||
if (hideTimer != null) {
|
||||
clearTimeout(hideTimer)
|
||||
hideTimer = null
|
||||
}
|
||||
}
|
||||
|
||||
function onScrollableScroll() {
|
||||
scrollbarVisible.value = true
|
||||
clearHideTimer()
|
||||
hideTimer = setTimeout(() => {
|
||||
scrollbarVisible.value = false
|
||||
hideTimer = null
|
||||
}, hideAfterMs)
|
||||
}
|
||||
|
||||
onUnmounted(() => {
|
||||
clearHideTimer()
|
||||
})
|
||||
|
||||
return { scrollbarVisible, onScrollableScroll }
|
||||
}
|
||||
Reference in New Issue
Block a user