Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 向下滚动时如何返回false?_Javascript_Reactjs_Scroll - Fatal编程技术网

Javascript 向下滚动时如何返回false?

Javascript 向下滚动时如何返回false?,javascript,reactjs,scroll,Javascript,Reactjs,Scroll,我发现了很多控制台日志滚动方向的例子。但是,即使我尝试修改几乎所有的函数以返回一个值,我也无法使它们工作 我的目标是在进入特定视口时检查滚动方向,如果滚动方向向下,则返回false。然后我想在exitviewport函数中使用false值,只发送一个滚动事件。我的尝试要么导致“无法读取未定义属性”错误,要么导致大量我不想要的事件。我认为我的主要问题是将返回与代码需要达到的重新分配相结合 到目前为止,我的代码是: //this code I found and it seems to work

我发现了很多控制台日志滚动方向的例子。但是,即使我尝试修改几乎所有的函数以返回一个值,我也无法使它们工作

我的目标是在进入特定视口时检查滚动方向,如果滚动方向向下,则返回false。然后我想在exitviewport函数中使用false值,只发送一个滚动事件。我的尝试要么导致“无法读取未定义属性”错误,要么导致大量我不想要的事件。我认为我的主要问题是将返回与代码需要达到的重新分配相结合

到目前为止,我的代码是:

//this code I found and it seems to work

onEnterViewPort () {
  window.onscroll = function (e) {
   console.log(this.oldScroll > this.scrollY);
   this.oldScroll = this.scrollY;
 };
}


//used console logs to check.

onExitViewPort () {
  console.log('I have left the viewport.')

 // ReactGA.event({
 //   category: 'Scroll',
 //   action: 'Scrolled down',
 // });
}
我用在

<ScrollTrigger onEnter={this.onEnterViewPort} onExit={this.onExitViewPort} triggerOnLoad={false}>
        <div >
          <thingshere>
        </div>
</ScrollTrigger>

请帮个忙

jQuery示例。 这将在您第一次进入视点后开始显示滚动方向,因此您需要为onExitViewpoint事件创建另一个函数

$.fn.onEnterViewport=函数(回调){
变量$window=$(window);
返回此。每个(函数(){
var=这个;
var oldHeight=0;
$(文档).on('scroll',函数(){
var docHeight=$window.height();
var myTop=$(this.scrollTop();
var myOffset=$(that.offset();
var top=myOffset.top-myTop;
如果(前八名){
回调(oldHeight,top);
}
oldHeight=顶部;
});
});
};
$('.viewpoint in').onEnterViewport(函数(oldHeight,newHeight){
如果(旧高度>新高度){
console.log('向下滚动')
}否则{
console.log('Scroll Top')
}
});
*{
填充:0;
保证金:0;
}
.观点{
背景:红色;
高度:1000px;
}
.观点{
背景:白色;
高度:600px;
}

您应该查看IntersectionObserver,它比监听每个滚动事件要求更低。