在 React 中更新Scroll 上的组件样式.js
2022-08-30 01:21:36
我在 React 中构建了一个组件,它应该在窗口滚动时更新自己的样式,以创建视差效果。
组件方法如下所示:render
function() {
let style = { transform: 'translateY(0px)' };
window.addEventListener('scroll', (event) => {
let scrollTop = event.srcElement.body.scrollTop,
itemTranslate = Math.min(0, scrollTop/3 - 60);
style.transform = 'translateY(' + itemTranslate + 'px)');
});
return (
<div style={style}></div>
);
}
这不起作用,因为 React 不知道组件已更改,因此不会重新呈现组件。
我尝试将 的值存储在组件的状态中,并调用滚动回调。但是,这使得滚动不可用,因为这非常慢。itemTranslate
setState
关于如何做到这一点的任何建议?