Javascript React useRef将平滑滚动添加到除internet explore以外的所有浏览器都支持的div

Javascript React useRef将平滑滚动添加到除internet explore以外的所有浏览器都支持的div,javascript,reactjs,typescript,animation,use-ref,Javascript,Reactjs,Typescript,Animation,Use Ref,我在实现基于React的useRef的元素的平滑滚动时遇到了问题,该元素将在任何现代浏览器中工作,而不会在动画中出现任何延迟。这似乎很难,这就是我寻求帮助的原因 曾尝试使用滚动视图({behavior:'smooth',block:'start'})在谷歌浏览器和火狐浏览器中运行良好,但Safari似乎不起作用。尝试安装polyfill()以支持Safari和其他浏览器,但在Safari的iPhone8上测试时,由于滚动动画滞后,这还不够好 考虑创建一个名为ScrollToElement的uti

我在实现基于React的useRef的元素的平滑滚动时遇到了问题,该元素将在任何现代浏览器中工作,而不会在动画中出现任何延迟。这似乎很难,这就是我寻求帮助的原因

曾尝试使用滚动视图({behavior:'smooth',block:'start'})在谷歌浏览器和火狐浏览器中运行良好,但Safari似乎不起作用。尝试安装polyfill()以支持Safari和其他浏览器,但在Safari的iPhone8上测试时,由于滚动动画滞后,这还不够好

考虑创建一个名为ScrollToElement的util函数,该函数接受元素ref或其他内容,并尝试自己制作动画,但希望获得一些帮助,因为我还没有真正玩过那么多css动画

有人能帮我找到解决这个问题的正确方向吗?这样我就可以顺利地滚动到任何浏览器中的任何div了

const elementRef = useRef<HTMLDivElement>(null)

顺便说一句,我正在做typescript。

以下是如何使用现有的
smoothscroll polyfill
useRef
hook来完成它

const{
useRef
}=反应;
常量应用=()=>{
const elementRef=useRef(null);
const onClick=()=>{
elementRef.current.scrollIntoView({behavior:'smooth'});
}
返回
向下滚动
元素
}
ReactDOM.render(<
App/>,
document.getElementById('root'))
);
.content{
高度:800px;
背景:#00000033;
显示器:flex;
弯曲方向:立柱;
证明内容:柔性端;
}

窗口。\uuuuForceSmoothScrollPolyFill\uuuuuu=true;

以下是如何使用现有的
smoothscroll polyfill
useRef
钩子实现此功能

const{
useRef
}=反应;
常量应用=()=>{
const elementRef=useRef(null);
const onClick=()=>{
elementRef.current.scrollIntoView({behavior:'smooth'});
}
返回
向下滚动
元素
}
ReactDOM.render(<
App/>,
document.getElementById('root'))
);
.content{
高度:800px;
背景:#00000033;
显示器:flex;
弯曲方向:立柱;
证明内容:柔性端;
}

窗口。\uuuuForceSmoothScrollPolyFill\uuuuuu=true;

我在我的中使用了
smoothscroll polyfill
,你能不能在导航中玩一玩,如果它滞后,请告诉我?如果是,那么我也必须更改它。我在我的中使用了
smoothscroll polyfill
,你能玩一下导航并告诉我它是否滞后吗?如果是的话,那么我也必须改变它。但这不是我想要的吗?使用这种技术有问题,因为它在ios设备上不平滑,但这不是我想要的吗?使用此技术时遇到问题,因为它在ios设备上不平滑
export const scrollToElement = (element: HTMLDivElement) => {

}