mirror of
https://github.com/element-plus/element-plus.git
synced 2026-03-13 07:51:17 +08:00
31 lines
821 B
TypeScript
31 lines
821 B
TypeScript
import { ref } from 'vue'
|
|
import { isNumber } from '@element-plus/utils'
|
|
|
|
export const useScrollbar = () => {
|
|
const scrollBarRef = ref()
|
|
|
|
const scrollTo = (options: ScrollToOptions | number, yCoord?: number) => {
|
|
const scrollbar = scrollBarRef.value
|
|
if (scrollbar) {
|
|
scrollbar.scrollTo(options, yCoord)
|
|
}
|
|
}
|
|
|
|
const setScrollPosition = (position: 'Top' | 'Left', offset?: number) => {
|
|
const scrollbar = scrollBarRef.value
|
|
if (scrollbar && isNumber(offset) && ['Top', 'Left'].includes(position)) {
|
|
scrollbar[`setScroll${position}`](offset)
|
|
}
|
|
}
|
|
|
|
const setScrollTop = (top?: number) => setScrollPosition('Top', top)
|
|
const setScrollLeft = (left?: number) => setScrollPosition('Left', left)
|
|
|
|
return {
|
|
scrollBarRef,
|
|
scrollTo,
|
|
setScrollTop,
|
|
setScrollLeft,
|
|
}
|
|
}
|