gpt4 book ai didi

reactjs - 使用 React Refs 触发命令式动画

转载 作者:行者123 更新时间:2023-12-03 16:24:39 25 4
gpt4 key购买 nike

从文档中,有一个 Refs 用例:
Triggering imperative animations.
有人可以提供一个关于如何做到这一点的例子吗?在使用 Ref 将其滚动到 View 中后,我试图将用户的注意力吸引到 div 上,我认为这可能是一个理想的用例,也许吧?

最佳答案

Refs and the DOM , EventTarget.addEventListener() , 和 Element.getBoundingClientRect() 了解更多信息。

// Imperative Animation
class ImperativeAnimation extends React.Component {

// State.
state = {background: '#fff'}

// Render.
render = () => (
<div ref={this.divRef} style={{height: '200vh', background: this.state.background}}>
Scroll to turn background papayawhip.
</div>
)

// Did Mount.
componentDidMount() {
window.addEventListener('scroll', this.onScroll)
}

// Div Ref.
divRef = React.createRef()

// On Scroll
onScroll = event => {
const div = this.divRef.current
const {y} = div.getBoundingClientRect()
if (y <= 0) this.setState({background: 'papayawhip'})
else this.setState({background: '#fff'})
}

}

// Mount.
ReactDOM.render(<ImperativeAnimation/>, document.querySelector('#root'))
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="root"></div>

关于reactjs - 使用 React Refs 触发命令式动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51223592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com