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