Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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检测DIV中的滚动位置并作出反应 this.state={ 页码:1 } onScroll=()=>{ 让elem=document.getElementById(“longTable”); let loading=true//这可能会随着api调用的进行而改变 如果((elem.offsetHeight+elem.scrollTop)>=elem.offsetHeight-10&&!加载){ this.setState(prevState=>({page:prevState.page+1}),()=> log(“现在可以滚动了”) //this.props.onLoadMore(this.state.page) ) }否则{ //调试器; log(“最后——不再调用api”) } }_Javascript_Html_Css_Reactjs - Fatal编程技术网

使用Javascript检测DIV中的滚动位置并作出反应 this.state={ 页码:1 } onScroll=()=>{ 让elem=document.getElementById(“longTable”); let loading=true//这可能会随着api调用的进行而改变 如果((elem.offsetHeight+elem.scrollTop)>=elem.offsetHeight-10&&!加载){ this.setState(prevState=>({page:prevState.page+1}),()=> log(“现在可以滚动了”) //this.props.onLoadMore(this.state.page) ) }否则{ //调试器; log(“最后——不再调用api”) } }

使用Javascript检测DIV中的滚动位置并作出反应 this.state={ 页码:1 } onScroll=()=>{ 让elem=document.getElementById(“longTable”); let loading=true//这可能会随着api调用的进行而改变 如果((elem.offsetHeight+elem.scrollTop)>=elem.offsetHeight-10&&!加载){ this.setState(prevState=>({page:prevState.page+1}),()=> log(“现在可以滚动了”) //this.props.onLoadMore(this.state.page) ) }否则{ //调试器; log(“最后——不再调用api”) } },javascript,html,css,reactjs,Javascript,Html,Css,Reactjs,这就是我所做的,但即使在我上下滚动时,它也会不断进行api调用 如何检测该div中的滚动,以便向上滚动不会进行api调用,而向下滚动只进行api调用 当达到一定的高度时,我不可能一直低头并进行api调用 请提供任何帮助DOM似乎没有提供区分向下滚动和向上滚动事件的内置方法 因此,唯一的方法是存储上一个滚动位置,然后将其与新位置进行比较,您就可以知道它是向上滚动还是向下滚动 此外,在React中,最好的方法应该是将该值直接存储为属性: class MyComponent extends Compo

这就是我所做的,但即使在我上下滚动时,它也会不断进行api调用

如何检测该div中的滚动,以便向上滚动不会进行api调用,而向下滚动只进行api调用 当达到一定的高度时,我不可能一直低头并进行api调用


请提供任何帮助

DOM似乎没有提供区分向下滚动和向上滚动事件的内置方法

因此,唯一的方法是存储上一个滚动位置,然后将其与新位置进行比较,您就可以知道它是向上滚动还是向下滚动

此外,在React中,最好的方法应该是将该值直接存储为属性:

class MyComponent extends Component {
  constructor(props) {
    super(props)
    this.lastScrollTopPosition = 0
  }

  onScroll() {
    /* ... */
  }
}

您可以参考以查看如何比较以前和当前的滚动位置。

DOM似乎没有提供一种内置方式来区分向下滚动和向上滚动事件

因此,唯一的方法是存储上一个滚动位置,然后将其与新位置进行比较,您就可以知道它是向上滚动还是向下滚动

此外,在React中,最好的方法应该是将该值直接存储为属性:

class MyComponent extends Component {
  constructor(props) {
    super(props)
    this.lastScrollTopPosition = 0
  }

  onScroll() {
    /* ... */
  }
}

您可以参考以查看如何比较以前和当前的滚动位置。

您正在寻找一些无限滚动的东西吗?是的,类似的。您正在寻找一些无限滚动的东西吗?是的,类似的东西。
class MyComponent extends Component {
  constructor(props) {
    super(props)
    this.lastScrollTopPosition = 0
  }

  onScroll() {
    /* ... */
  }
}