import throttle from 'lodash.throttle'; import Link from 'next/link' import { useCallback, useEffect } from 'react'; /** * 站点图标 * @returns */ export const Logo = () => { useEffect(() => { window.addEventListener('scroll', navBarScollListener) return () => { window.removeEventListener('scroll', navBarScollListener) } }, []) // 滚动监听 const throttleMs = 200 const navBarScollListener = useCallback( throttle(() => { // eslint-disable-next-line camelcase const ud_header = document.querySelector('.ud-header'); const logo = document.querySelector('.header-logo'); const scrollY = window.scrollY; // 控制台输出当前滚动位置和 sticky 值 if (scrollY > 0) { ud_header.classList.add('sticky'); // 根据导航栏状态修改 logo if (logo) { logo.src = '/images/landing-2/logo/logo.svg'; } } else { ud_header.classList.remove('sticky'); // 根据导航栏状态修改 logo if (logo) { logo.src = '/images/landing-2/logo/logo-white.svg'; } } // 显示或隐藏返回顶部按钮 const backToTop = document.querySelector('.back-to-top'); backToTop.style.display = scrollY > 50 ? 'flex' : 'none'; }, throttleMs) ) return <>
{/* eslint-disable-next-line @next/next/no-img-element */} logo
}