我在div上有两个左右按钮,该div有一个滚动条 我想要做的就是,按住一个按钮1000毫秒..滚动条连续移动(就像我们浏览器中的默认实现) 我知道如何使用setTimeout!但是问题出在函数内部
在班上
holdRightButton = () => {
// i want to use this element :
// const slider : HTMLElement = this.state.scrollRef.current;
this.setState({
timer : setTimeout(() => {
}, 1000)
})
}
releaseButton = () => {
clearTimeout(this.state.timer);
}
内部render():
<Button onMouseDown={this.holdRightButton}
onMouseUp={this.releaseButton}>
<span className="fas fa-chevron-right" />
</Button>
我试图做例如Element.ScrollBy(1,0),但是您知道..它将仅执行1次 我还尝试了一个布尔值,该布尔值在发送事件onMouseUp但应用程序崩溃时会变成False 有什么办法吗?即使完全不同
答案 0 :(得分:0)
setTimeout仅执行一次操作。
请使用setInterval和clearInterval
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval