当前位置: 首页 > news >正文

react【实战】首页 -- 响应式导航栏(含带联动动画的搜索框)

最终效果

电脑/pad端

移动端



组件封装

技术栈: react19 + Tailwind CSS

src/components/Header.jsx

importLogofrom"../assets/apple.svg?react";import{AiOutlineMenu,AiOutlineSearch}from"react-icons/ai";import{useState}from"react";constHeader=()=>{const[isOpen,setIsOpen]=useState(false);const[isSearchEnable,setIsSearchEnable]=useState(false);const[searchValue,setSearchValue]=useState("");return(<nav className="flex gap-2 items-center justify-between px-4 h-16 shadow-md sticky top-0 z-50 bg-white/70 backdrop-blur-md"><a href="#"className="text-xl font-bold"><Logo className="w-6 h-6 hover:scale-105 transition-transform"/></a><div className="gap-6 hidden md:flex mx-auto"><a href="#">商店</a><a href="#">电脑</a><a href="#">手机</a><a href="#">智能家居</a><a href="#">娱乐</a><a href="#">技术支持</a></div>{isSearchEnable&&(<div className="relative"><input id="search-input"className="peer border border-gray-300 px-4 py-2 w-64 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 transition"placeholder=" "value={searchValue}onChange={(e)=>setSearchValue(e.target.value)}/><label htmlFor="search-input"className="absolute left-2-top-2bg-white px-2text-xs text-gray-500transition-all duration-200cursor-pointer peer-placeholder-shown:top-2peer-placeholder-shown:text-sm peer-focus:-top-2peer-focus:left-2peer-focus:text-blue-500peer-focus:text-xs">搜索</label>{searchValue&&(<button onClick={()=>setSearchValue("")}className="absolute right-4 top-2 text-gray-400 hover:text-gray-600 cursor-pointer peer-focus:text-blue-500"></button>)}</div>)}<div className="flex gap-2 ml"><button onClick={()=>setIsSearchEnable(!isSearchEnable)}className="cursor-pointer"><AiOutlineSearch size={24}/></button><button className="md:hidden cursor-pointer"onClick={()=>setIsOpen(true)}><AiOutlineMenu size={24}/></button></div><div className={`md:hidden fixed top-0 right-0 h-full w-64${!isOpen&&"hidden"}`}><div className="flex flex-col mt-17 space-y-6 bg-white text-center p-6 rounded-lg"><a href="#">商店</a><a href="#">电脑</a><a href="#">手机</a><a href="#">智能家居</a><a href="#">娱乐</a><a href="#">技术支持</a></div></div>{/* 移动端,菜单展开时,导航栏添加模糊遮罩 */}{isOpen&&(<div className="fixed inset-0 bg-black/50 backdrop-blur-md"onClick={()=>setIsOpen(false)}></div>)}</nav>);};exportdefaultHeader;

使用

importHeaderfrom"./components/Header";
<Header/>
http://www.jsqmd.com/news/720568/

相关文章:

  • Dubbo技术栈沉淀
  • 如何用Winhance中文版一键优化你的Windows系统:终极性能提升指南
  • 一文读懂:海上钻井平台是什么?为什么能浮在海上?它到底怎么采石油?
  • 表单验证:React-Hook-Form结合Zod的实践
  • 城通网盘直连解析工具:三步告别限速困扰
  • LongCat-Image-Editn实战:上传图片输入中文指令,轻松修改图片内容
  • C语言标准库入门讲解
  • Phi-3.5-mini-instruct跨境电商:商品描述多语言生成+合规文案审核
  • 高效自动化设计转动画:AEUX专业级一站式解决方案
  • 5步搭建你的跨平台音乐中心:MusicFree插件系统完全指南
  • 如何安全定制iOS界面:Cowabunga Lite终极指南与免费个性化教程
  • DbGate终极指南:如何快速连接和管理MySQL数据库的完整教程
  • PPTist:5分钟上手免费开源在线PPT制作工具完全指南
  • Windows热键冲突完全手册:精准定位与彻底解决指南
  • 前端防抖、节流
  • 3种技术概念验证方法:如何确保你的SHAP解释真正可靠?
  • python bandit
  • 别再让模型‘偏爱’多数类了:PyTorch中BCEWithLogitsLoss的weight和pos_weight参数实战指南
  • 量子编程语言:Q#与Qiskit框架的使用对比
  • ComfyUI IPAdapter完整指南:从零开始掌握AI图像风格迁移
  • FigmaCN中文插件:3分钟快速实现Figma界面汉化的完整指南
  • X-13ARIMA-SEATS时间序列季节调整软件的编译和使用
  • 答辩前三天才做 PPT?Paperxie AI PPT,把毕业论文答辩的焦虑全碾碎
  • 2026卫生专业技术资格考试考前押题卷TOP榜!冲刺提分必刷密卷测评 - 医考机构品牌测评专家
  • 小米手机录音机‘吃’掉了我的文件?深入Android/data/com.android.soundrecorder的完整避坑指南
  • 如何用300元预算打造专业级天文望远镜控制系统?OnStep开源方案全解析
  • 3个核心功能+5分钟部署:WarcraftHelper魔兽争霸III终极兼容性解决方案
  • UDS诊断进阶:拆解0x2C动态定义DID的三种用法与五大常见NRC应对策略
  • 构建生产级AI聊天机器人:PHP 9.0异步HTTP/2流式调用OpenAI + 自研RAG缓存层(仅需23行核心代码)
  • JBoltAI智能报价系统:从手工核算到标准化闭环