我在实现基于 React 的 useRef 的元素的平滑滚动时遇到了麻烦,该元素可以在任何现代浏览器中运行,而不会在动画中出现任何延迟。这似乎很难,这就是我寻求帮助的原因。
尝试使用在 Google Chrome 和 Firefox 中运行良好的scrollIntoView({ behavior: 'smooth', block: 'start' }),但 Safari 似乎不起作用。尝试安装 polyfill ( https://www.npmjs.com/package/smoothscroll-polyfill ) 以支持 Safari 和其他浏览器,但在 Safari 中的 Iphone 8 上进行测试时,由于滚动动画滞后,它还不够好。
考虑创建一个名为ScrollToElement的 util 函数,该函数接受元素 ref 或其他内容并尝试自己对其进行动画处理,但需要一些帮助才能开始,因为我还没有真正玩过 css 动画。
一些可以帮助我解决这个问题的正确方向,所以我可以顺利滚动到在任何浏览器中工作的任何 div 吗?
const elementRef = useRef<HTMLDivElement>(null)
实用程序功能
export const scrollToElement = (element: HTMLDivElement) => {
}
我正在做打字稿顺便说一句。