调整Header,平滑滚动
This commit is contained in:
tangly1024
2021-12-23 11:16:20 +08:00
parent 50f67b027e
commit b961a597cb
7 changed files with 46 additions and 26 deletions

View File

@@ -12,9 +12,14 @@ import Typed from 'typed.js'
export default function Header () {
const [typed, changeType] = useState()
useEffect(() => {
if (!typed) {
if (!typed && window && document.getElementById('typed')) {
changeType(new Typed('#typed', {
stringsElement: '#typed-strings', typeSpeed: 200, showCursor: false
strings: ['Hi我是一个程序员', 'Hi我是一个打工人', 'Hi我是一个干饭人', '欢迎来到我的博客🎉'],
typeSpeed: 200,
backSpeed: 100,
backDelay: 400,
showCursor: true,
smartBackspace: true
}))
}
})
@@ -23,8 +28,20 @@ export default function Header () {
}
const { theme } = useGlobal()
// 监听滚动自动分页加载
// 监听滚动
let windowTop = 0
const scrollTrigger = useCallback(throttle(() => {
if (window.scrollY > windowTop & window.scrollY < window.innerHeight) {
scrollToCenter()
}
if (window.scrollY < windowTop & window.scrollY < window.innerHeight) {
window.scroll({ top: 0, behavior: 'smooth' })
}
windowTop = window.scrollY
updateTopNav()
}, 500))
const updateTopNav = () => {
if (theme !== 'dark') {
const stickyNavElement = document.getElementById('sticky-nav')
if (window.scrollY < window.innerHeight) {
@@ -33,27 +50,26 @@ export default function Header () {
stickyNavElement.classList.remove('dark')
}
}
}, 500))
}
// 监听滚动
useEffect(() => {
scrollTrigger()
updateTopNav()
window.addEventListener('scroll', scrollTrigger)
return () => {
window.removeEventListener('scroll', scrollTrigger)
}
})
return <div className='h-screen w-full'>
<div className='absolute z-10 flex h-screen items-center justify-center w-full'>
<div id="typed-strings">
<h2 className='text-xs text-white font-serif'>唐风集里收卷波澜</h2>
</div>
<div id="typed" className='text-4xl md:text-7xl text-center text-white font-serif'></div>
return <header className='h-screen w-full'>
<div className='absolute z-10 flex h-screen items-center justify-center w-full text-4xl md:text-7xl text-white'>
<div id="typed" className=' text-center font-serif'></div>
<div onClick={scrollToCenter} className='cursor-pointer w-full text-center text-2xl animate-bounce absolute bottom-10 text-white'><FontAwesomeIcon icon={faArrowDown} /></div>
</div>
<div className='bg-black bg-cover bg-center h-screen md:-mt-14'
style={{ backgroundImage: 'linear-gradient(rgba(0, 0, 0, 0.5), rgba(0,0,0,0.4), rgba(0, 0, 0, 0.5) ),url("https://pic2.zhimg.com/v2-9dfb9bd28656a13d7d57793c853dfb52_r.jpg")' }}>
<div className='bg-black bg-cover bg-center h-screen md:-mt-14 animate__fadeInRight animate_fadeIn'
style={{ backgroundImage: 'linear-gradient(rgba(0, 0, 0, 0.5), rgba(0,0,0,0.4), rgba(0, 0, 0, 0.5) ),url("./bg_image.jpg")' }}>
</div>
</div>
</header>
}