按住按钮可连续滚动ReactJS

时间:2019-06-13 23:22:40

标签: javascript html css reactjs typescript

我在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 有什么办法吗?即使完全不同

1 个答案:

答案 0 :(得分:0)

setTimeout仅执行一次操作。

请使用setInterval和clearInterval

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval