简体   繁体   English

滚动到特定位置时如何更改导航栏颜色?

[英]How to change navbar colour when it's scrolled to a certain position?

I'm trying to learn hooks and event handling while using a new default (from 16.8) synthax.我正在尝试在使用新的默认(从 16.8 开始)合成器的同时学习钩子和事件处理。 I already know how to change state by a button click and use it to make my menu expand by clicking, but how do I change this coloured state when a certain position is reached?我已经知道如何通过单击按钮来更改状态并使用它来通过单击来展开菜单,但是如何在到达某个位置时更改此颜色状态?

...
function Demo() {

  const [coloured, setColoured] = useState(true);

    return (
      <Navbar className="navbar" style={{backgroundColor: coloured? 'red' : 'black'}}>
        <NavbarBrand href="/">Navbar</NavbarBrand>
        <Nav className='mr-auto' navbar>
            <NavItem>
                <NavLink href="/" className="active">Item1</NavLink>
            </NavItem>
            <NavItem>
              <NavLink href="/">Item2</NavLink>
            </NavItem>
          </Nav>
      </Navbar>
    )
}
export default Demo;

You can use window.addEventListener('scroll', this.handleScroll, { passive: true }) to listen to scroll position change.您可以使用window.addEventListener('scroll', this.handleScroll, { passive: true })来监听滚动位置的变化。

Check this example I've prepared for you: https://codesandbox.io/s/semantic-ui-react-responsive-navbar-2lq7v检查我为你准备的这个例子: https : //codesandbox.io/s/semantic-ui-react-responsive-navbar-2lq7v

As scroll position becomes greater than 200, it changes the navbar color.当滚动位置大于 200 时,它会更改导航栏颜色。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM