【发布时间】:2021-11-21 10:56:27
【问题描述】:
我有这个滚动的标题,我想将背景更改为不同的颜色。
navbar 变量始终返回 null。为什么会这样?我怎样才能做到这一点?
transform:translateY 仅用于滚动上的小动画。
import React from 'react'
import { Navbar, Container, Nav } from 'react-bootstrap'
import { LinkContainer } from 'react-router-bootstrap'
const Header = () => {
const navbar = document.getElementById("navbar");
let scrolled = false;
window.onscroll = function () {
if (document.body.scrollTop >= 200 || document.documentElement.scrollTop >= 200) {
navbar.classList.add('color-nav');
if (!scrolled) {
navbar.style.transform = 'translateY(-70px)'
}
setTimeout(function () {
navbar.style.transform = 'translateY(0px)'
scrolled = true
}, 200)
} else {
navbar.classList.remove('color-nav');
scrolled = false
}
};
return (
<div id='navbar' >
<Navbar fixed="top" className='navbar' collapseOnSelect expand="lg" >
<Container>
<LinkContainer to='/'>
<Navbar.Brand className='logo' >Logo</Navbar.Brand>
</LinkContainer>
<Navbar.Toggle aria-controls="responsive-navbar-nav" />
<Navbar.Collapse id="responsive-navbar-nav">
<Nav className="me-auto">
<LinkContainer to='/services'>
<Nav.Link className='links'>Services</Nav.Link>
</LinkContainer>
</Nav>
<Nav>
<LinkContainer to='/login'>
<Nav.Link className='links'>Login</Nav.Link>
</LinkContainer>
<LinkContainer to='/signup'>
<Nav.Link className='links'>
Sign Up
</Nav.Link>
</LinkContainer>
</Nav>
</Navbar.Collapse>
</Container>
</Navbar>
</div >
)
}
export default Header
【问题讨论】:
-
通常我的建议是检查代码何时加载。首先我会渲染整个标题,然后我会附加事件监听器。
标签: javascript css reactjs bootstrap-4 react-bootstrap