useRef 辅助函数行为 'smooth'

useRef helper function behavior 'smooth'

我正在尝试创建一个可以在我的 React 应用程序中使用的辅助函数,但行为 'smooth' 似乎不起作用。

const scrollRef = useRef()

const handleScroll = (ref) => {
return ref.current.scrollTo({ left: ref.current.scrollLeft -= 500, behavior: 'smooth' })
}

handleScroll(scrollRef)

正在滚动到该位置,但不流畅。如果我不使用这个辅助函数,它就可以正常工作。你有什么想法如何使这项工作?

只是为了确定您是如何使用它的,运行 函数是针对点击事件还是其他?

下面的代码片段工作正常。

import { useRef } from "react";

export default function App() {
  const scrollRef = useRef(null);

  const handleScroll = (ref) => {
    if (ref.current) {
      return window.scrollTo({ left: ref.current.scrollLeft -= 500, behavior: 'smooth' })
    }
  }
  return (
    <div style={{ height: '300vh', width: '200vw' }} onClick={() => handleScroll(scrollRef)}>
      <div ref={scrollRef} style={{ height: '100vh', width: '150vw', background: 'black' }}></div>
      <div style={{ height: '100vh', width: '150vw', background: 'green' }}></div>
    </div>
  );
}

您使用它的方式不同吗?

您可以通过添加一个小 CSS 样式来添加平滑的滚动行为。

.your-element-class {
  scroll-behavior: smooth
}