Javascript 在Cordova iOS w/React上的惯性/动量滚动期间,要听哪个事件
我有一个React应用程序通过cordova/phonegap在iOS上运行 在一个组件中,我有一个工具栏,当您滚动过它时,它会粘在屏幕顶部:Javascript 在Cordova iOS w/React上的惯性/动量滚动期间,要听哪个事件,javascript,ios,cordova,reactjs,phonegap,Javascript,Ios,Cordova,Reactjs,Phonegap,我有一个React应用程序通过cordova/phonegap在iOS上运行 在一个组件中,我有一个工具栏,当您滚动过它时,它会粘在屏幕顶部: <div id="content">Some stuff in here</div> <div id="tool-bar"> <div class="tool">Tool 1</div> <div class="tool">Tool 2</div> <
<div id="content">Some stuff in here</div>
<div id="tool-bar">
<div class="tool">Tool 1</div>
<div class="tool">Tool 2</div>
</div>
<div id="some-stuff-below-toolbar">Stuff</div>
现在,这些都可以在Chrome/Safari中使用,但在iOS/Cordova上,在动量滚动期间不会触发滚动事件。因此,如果用户在按住屏幕的同时滚动超过偏移限制,则可以,因为touchmove
事件会持续触发。但是,如果用户滚动一点,释放屏幕,并且动量/惯性滚动使视图滚动超过偏移量,则在滚动结束之前不会发生任何事情(因为随后触发了滚动事件)
问题:
有没有一个单独的活动我可以听,或有一个科尔多瓦
使javascript在惯性/动量期间执行的设置
滚动
setInterval()
我还尝试在touchend上设置一个间隔(用户停止滚动/触摸)并在稍后将其删除,但在动量/惯性滚动期间,似乎根本没有运行javascript:setInterval在此期间不执行。您找到解决方案了吗?
componentDidMount() {
document.addEventListener('scroll', this.updateScrollY);
document.addEventListener('touchmove', this.updateScrollY);
}
updateScrollY() {
const current_y = window.pageYOffset || document.documentElement.scrollTop;
this.setState({...this.state, current_y});
}
render() {
let classNames = '';
if(this.state.current_y >= this.state.offset) {
classNames = 'sticky';
}
return(...some JSX...
<div id='tool-bar' className={classNames}> ... etc more JSX);
}
.sticky {
position: fixed;
top: 0px;
left: 0px;
}