ドキュメント全体を読みましたreact-spring
が、これを行う明確な方法はないようです。
私の試み:
import React, { useRef, useState } from "react"
import { animated, useSpring } from "react-spring"
const App = () => {
const scrollDestinationRef = useRef()
const [elementScroll, setElementScroll] = useState(false)
const buttonClickHandler = () => setElementScroll(prevState => !prevState)
const scrollAnimation = useSpring({
scroll: elementScroll
? scrollDestinationRef.current.getBoundingClientRect().top
: 0
})
return (
<main>
{/* Click to scroll to destination */}
<animated.button
onClick={buttonClickHandler}
scrollTop={scrollAnimation.scroll}
style={{
height: "1000px",
width: "100%",
backgroundColor: "tomato"
}}
>
Scroll to destination
</animated.button>
{/* Scroll destination */}
<div
ref={scrollDestinationRef}
style={{
height: "200px",
width: "200px",
backgroundColor: "green"
}}
></div>
</main>
)
}
export default App
私は試行のために参照とフックを使用しています。
Web サイトのuseRef
天井からオフセットされた上部を見つけるために、スクロール先が添付されます。
クリック時useState
に状態を切り替えてスクロールをトリガーします。
useSpring
0 からスクロール先のスクロール トップ aka に移動するアニメーションをトリガーするために使用しgetBoundingClientRect().top
ます。
誰でもこれを解決するのを手伝ってもらえますか?
オンラインでの説明はあまりありません、ありがとう!