monorepo/apps/web/src/app/_components/header/index.tsx

59 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use client";
import Image from "next/image";
import Link from "next/link";
import { useEffect, useState } from "react";
import { HeaderNav } from "./headerNav";
import { HeaderTools } from "./headerTools";
//导航
export const Header = () => {
const [opacity, setOpacity] = useState(1); // 初始透明度为1完全不透明
useEffect(() => {
const handleScroll = () => {
// 根据滚动位置计算透明度
const newOpacity = 1 - Math.min(window.scrollY / 200, 1);
setOpacity(newOpacity);
};
// 添加滚动事件监听器
window.addEventListener("scroll", handleScroll);
// 移除滚动事件监听器
return () => {
window.removeEventListener("scroll", handleScroll);
};
}, []);
return (
<header
className=" tw-py-5 lg:tw-px-40 tw-fixed tw-top-0 tw-left-0 tw-w-full tw-z-50"
style={{
backgroundColor: `rgba(248 ,250 ,252, ${opacity})`, // 使用rgba格式设置背景色和透明度
transition: "background-color 0.3s ease", // 添加过渡效果
}}
>
<div className="tw-flex tw-justify-between tw-items-center ">
<div className=" tw-flex-1 tw-flex tw-flex-row tw-ml-8 ">
<Link href={"/"}>
<Image
src={"/logo.png"}
alt="logo"
width={174}
height={40}
priority
></Image>
</Link>
</div>
<div className=" tw-flex tw-flex-auto tw-flex-col tw-w-3/5 tw-justify-center tw-items-center ">
<HeaderNav></HeaderNav>
</div>
<div className=" tw-flex-1 tw-flex tw-flex-row-reverse tw-mr-8 ">
<HeaderTools></HeaderTools>
</div>
</div>
</header>
);
};