import { useCallback, useEffect, useState } from 'react' import Logo from './Logo' import { MenuListTop } from './MenuListTop' import throttle from 'lodash.throttle' /** * 顶部导航 * @param {*} param0 * @returns */ const NavBar = props => { const [isOpen, changeShow] = useState(false) const [fixedNav, setFixedNav] = useState(false) const [textWhite, setTextWhite] = useState(false) const [navBgWhite, setBgWhite] = useState(false) const toggleMenuOpen = () => { changeShow(!isOpen) } // 监听滚动 useEffect(() => { scrollTrigger() window.addEventListener('scroll', scrollTrigger) return () => { window.removeEventListener('scroll', scrollTrigger) } }, []) const throttleMs = 200 /** * 根据滚动条,切换导航栏样式 */ const scrollTrigger = useCallback(throttle(() => { const scrollS = window.scrollY // 导航栏设置 白色背景 if (scrollS <= 0) { setFixedNav(false) setBgWhite(false) // 文章详情页特殊处理 const postHeader = document.querySelector('#post-bg') if (postHeader) { setFixedNav(true) setTextWhite(true) setBgWhite(false) } return } // 向下滚动后的导航样式 setFixedNav(true) setTextWhite(false) setBgWhite(true) }, throttleMs)) return (<> {/* 头条 */} ) } export default NavBar