Почему не работает onScroll [РЕШЕНО]
Если использовать onWheel то работает
const Root = () => {
const [ ok, setOk ] = useState ( false );
const ScrollEl = ( props ) => (
<ScrollWrapper display={ props.display }>
<h1>Hello</h1>
</ScrollWrapper>
);
const handleWheel = async () => {
if ( pageYOffset >= 250 ) {
await setOk ( true );
return console.log ( ok );
} else {
await setOk ( false );
return console.log ( ok );
}
};
return (
<Layout onScroll={ handleWheel }>
<Header headerCategory={ headerCategory } headerArticles={ headerArticles } />
<Suspense fallback='loading'>
</Suspense>
<React.Suspense fallback="Root content suspense">
<MainContentWrapper >
<ScrollEl display={ ok ? 'flex' : 'none' } />
<Switch>
<Route exact path="/">
<Redirect to="/prams" />
</Route>
<Route path="/prams" component={ lazy ( 'Prams' ) } />
<Route path="/map" component={ lazy ( 'Map' ) } />
</Switch>
</MainContentWrapper>
</React.Suspense>
</Layout>
);
};
export default Root;
Ответы (2 шт):
Автор решения: Август
→ Ссылка
событие
wheelсрабатывает всегда, даже если документу некуда скроллиться. оно будет работать даже в пустом документесобытие
scrollсрабатывает тогда, когда элемент документа (на который повешено событиеscroll) проскроллилось (хотя бы на 1px вверх или 1px вниз). соответственно, если этому элементу негде скроллиться - то и событие не сработает.
к сожалению, без полноценного взгляда на сайт здесь невозможно сказать что именно мешает скроллу
Автор решения: Slavick
→ Ссылка
Добавил height: 100% от html body вниз по дереву к соему сколл элементу