【问题标题】:Javascript/React onClick scroll set amount down/upJavascript/React onClick 向下/向上滚动设置量
【发布时间】:2019-01-23 10:04:17
【问题描述】:

我在弄清楚如何使按钮 onClick 向下滚动(例如每次点击 30 像素)时遇到问题。

假设我有两个带有这样图标的 div

<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>

然后是两个函数

scrollUp(number: amountToScroll){
   //Scroll the "info-container" up amountToScroll pixels
}

scrollDown(number: amountToScroll){
   //Scroll the "info-container" down amountToScroll pixels
}

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

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

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

    让我们将 state 设为 scrollPosition 并将其初始化为 0。

    现在在scrollUp函数中:

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

    现在在 scrollDown 功能中:

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

    【讨论】:

      【解决方案2】:

      使用window.scrollBy( pixelsToScrollRight, pixelsToScrollDown ) 方法。

      因此,您可以使用以下方法来代替 scrollUp()scrollDown() 方法:

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

      如果您想查看 div 内的滚动:How to scroll to an element inside a div?

      【讨论】:

      • 试过了,但是当我按下它时没有任何反应。而且也不开窗。让整个网页向下滚动?我只需要按下该部分即可滚动其溢出
      猜你喜欢
      • 2018-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 2014-10-06
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多