问题
acapp中滚动的默认行为是取消的得用js添加,简单封装个hook
hook代码
import { MutableRefObject, useCallback, useEffect } from 'react'
// 滚动速度
const speed = 60
export function useWheel(dom: MutableRefObject<HTMLDivElement | null>) {
const fun = useCallback(
(e: any) => {
if (!dom.current) return
if (e.wheelDelta > 0) {
//向上滚动
dom.current.scrollTop = dom.current.scrollTop - speed
}
if (e.wheelDelta < 0) {
//向下滚动
dom.current.scrollTop = dom.current.scrollTop + speed
}
},
[dom]
)
useEffect(() => {
dom.current && dom.current.addEventListener('wheel', fun)
return () => {
dom.current && dom.current.removeEventListener('wheel', fun)
}
}, [])
}
使用
用useRef获取需要添加滚动的div,直接调用hook即可
const youDiv = useRef<HTMLDivElement>(null)
useWheel(youDiv)