Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/React onClick滚动设置金额向下/向上_Javascript_Reactjs - Fatal编程技术网

Javascript/React onClick滚动设置金额向下/向上

Javascript/React onClick滚动设置金额向下/向上,javascript,reactjs,Javascript,Reactjs,我遇到了一个问题,如何使一个按钮一次点击向下滚动,例如每次点击30px 假设我有两个像这样的图标 <div className="info-container"> <div className="scroll-icon-container" onClick={scrollUp(30)}> <ScrollUpIcon /> </div> <div className="scroll-icon-contai

我遇到了一个问题,如何使一个按钮一次点击向下滚动,例如每次点击30px

假设我有两个像这样的图标

<div className="info-container">
    <div className="scroll-icon-container" onClick={scrollUp(30)}>
        <ScrollUpIcon />
    </div>
    <div className="scroll-icon-container" onClick={scrollDown(30)}>
        <ScrollDownIcon />
    </div>
    <p>"Huge amount of text that will need scrolling"</p>
</div>

到目前为止,我所能找到的只是jquery或如何使其滚动到特定元素,但我正在寻找一个设置量,以像素%或任何有效的方式向下滚动。

首先,您可以定义一个变量或状态来保持滚动位置

让我们将状态作为scrollPosition并将其初始化为0

现在在scrollUp功能中:

scrollUp(amountToScroll){
    this.setState({
        scrollPosition : this.state.scrollPosition + amountToScroll
    })
    window.scrollTo(0, this.state.scrollPosition)
}
scrollDown(amountToScroll){
    this.setState({
        scrollPosition : this.state.scrollPosition - amountToScroll
    })
    window.scrollTo(0, this.state.scrollPosition)
}
现在进入下滚功能:

scrollUp(amountToScroll){
    this.setState({
        scrollPosition : this.state.scrollPosition + amountToScroll
    })
    window.scrollTo(0, this.state.scrollPosition)
}
scrollDown(amountToScroll){
    this.setState({
        scrollPosition : this.state.scrollPosition - amountToScroll
    })
    window.scrollTo(0, this.state.scrollPosition)
}

首先,您可以定义用于保持滚动位置的变量或状态

让我们将状态作为scrollPosition并将其初始化为0

现在在scrollUp功能中:

scrollUp(amountToScroll){
    this.setState({
        scrollPosition : this.state.scrollPosition + amountToScroll
    })
    window.scrollTo(0, this.state.scrollPosition)
}
scrollDown(amountToScroll){
    this.setState({
        scrollPosition : this.state.scrollPosition - amountToScroll
    })
    window.scrollTo(0, this.state.scrollPosition)
}
现在进入下滚功能:

scrollUp(amountToScroll){
    this.setState({
        scrollPosition : this.state.scrollPosition + amountToScroll
    })
    window.scrollTo(0, this.state.scrollPosition)
}
scrollDown(amountToScroll){
    this.setState({
        scrollPosition : this.state.scrollPosition - amountToScroll
    })
    window.scrollTo(0, this.state.scrollPosition)
}
使用
window.scrollBy(pixelsToScrollRight,pixelsToScrollDown)
方法

因此,您不必使用
scrollUp()
scrollDown()
方法,而可以使用以下方法:

scroll(number: amountToScroll){
  //amount to scroll is negative to scroll up
  window.scrollBy(0 , amountToScroll)
}
如果您想查看div中的滚动:

使用
窗口。滚动方式(pixelsToScrollRight,pixelsToScrollDown)
方法

因此,您不必使用
scrollUp()
scrollDown()
方法,而可以使用以下方法:

scroll(number: amountToScroll){
  //amount to scroll is negative to scroll up
  window.scrollBy(0 , amountToScroll)
}

如果您想查看div中的滚动:

尝试了这个方法,但当我按下它时什么也没发生。而且也没有窗户。让整个网页向下滚动?我只需要这一部分是按在滚动其溢出尝试了这一点,但没有发生什么事,当我按下它。而且也没有窗户。让整个网页向下滚动?我只需要这一部分是按下滚动其溢出