如何使用React js制作像https://www.acorns.com/这样的粘性标题

时间:2017-08-23 05:37:31

标签: reactjs

这是我正在使用的组件。

CSS已被添加..只需在滚动不透明度时工作,需要从0更改为1.需要更改css类。设置此代码但不在组件内工作。如何将其放在组件中? ?我是新手。

var componentDidMount() {
  window.addEventListener('scroll', (event) => {
     if(//scroll position is top){
         class = 'bg-helper';
     } else {
         class = 'sticky';
     }
     this.setState({
        activeClass: class
     })
  });
}

1 个答案:

答案 0 :(得分:0)

您可以坚持使用库来解决此问题(反应粘性),也可以使用粘性元素的topPosition检查scrollPosition。

const initialTop = myStickyElement.getBoundingClientRect().top;

window.addEventListener('scroll', (e) => {
  if (window.scrollY < initialTop) {
    this.setState({ activeClass: 'bg-helper' });
  } else {
    this.setState({ activeClass: 'sticky' });
  }
};

问题是,当客户端视口发生更改(翻转智能手机)时,此代码无法正常工作。

但是,如果要在滚动页眉元素的高度时更改为粘滞,则只需修改此行:

const initialTop = myStickyElement.getBoundingClientRect().height;