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

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Hidden Search Widget (交互式搜索框)

📅 我们继续 50 个小项目挑战!—— Hidden Search Widget 组件

  • 仓库地址:https://github.com/SunACong/50-vue-projects

  • 项目预览地址:https://50-vue-projects.vercel.app/

在这里插入图片描述

✨ 组件目标

  • 点击按钮展开隐藏的搜索框

  • 再次点击按钮收起搜索框

🧱 技术实现点

  • Vue3 的响应式状态管理 ref

  • TailwindCSS 的过渡动画与布局类

  • 条件样式绑定 :class 实现动态样式

🔧 HiddenSearchWidget.vue 组件实现

<template><div class="flex h-screen items-center justify-center text-white"><div class="flex h-14 border-2 bg-white"><input:class="['text-gray-500 outline-0 transition-all duration-300 ease-in-out',isOpen ? 'w-96 p-4' : 'w-0',]"placeholder="Search..."type="text" /><button class="h-14 w-14 text-3xl" @click="toggle">🔍</button></div></div>
</template><script setup>
import { ref } from 'vue'const isOpen = ref(false)const toggle = () => {isOpen.value = !isOpen.value
}
</script>

💡 TailwindCSS 样式重点讲解

类名功能描述
transition-all duration-300平滑过渡动画
w-96 / w-0控制输入框宽度展开与收起
p-4输入框内边距
outline-0移除默认焦点样式
text-gray-500输入文字颜色
h-14 w-14按钮尺寸

🦌 常量定义 + 组件路由

constants/index.js 添加组件预览常量:


export const projectList = [{id: 4,title: 'Hidden Search Widget',image: 'https://50projects50days.com/img/projects-img/4-hidden-search-widget.png',link: 'HiddenSearchWidget',}
]

router/index.js 中添加路由选项:

{path: '/HiddenSearch',name: 'HiddenSearch',component: () => import('@/projects/HiddenSearch.vue')
}

🚀 小结

本组件通过 Vue3 的响应式状态管理和 TailwindCSS 的实用工具类,实现了一个简洁的隐藏搜索框交互效果。

  • 使用 ref 管理组件状态

  • 利用条件样式绑定动态控制元素样式

  • 应用 TailwindCSS 的过渡动画类提升用户体验


📅 明日预告:Blurry Loading!实现模糊加载效果。

每天造一个轮子,码力暴涨不是梦!🚀

http://www.xdnf.cn/news/7737.html

相关文章:

  • 企业网站架构部署与优化-Nginx核心功能
  • Quasar 使用 Pinia 进行状态管理
  • C#SQLServer数据库通用访问类
  • 电子电路:什么是射极电阻?
  • 构建安全的Vue前后端分离架构:利用长Token与短Token实现单点登录(SSO)策略
  • 多线程环境下结构体赋值是否具有原子性?
  • Java 线程池 ThreadPoolExecutor
  • SAP-ABAP:SAP的BAPI_PO_CHANGE功能详解
  • 9 定时任务与周期性调度
  • 活到老学到老-Spring注解-如何创建get和set
  • C++面向对象——多态
  • 进程之IPC通信一
  • 内核常见面试问题汇总
  • PN结的形成及特性
  • 技术派项目——注册登录(用户名密码的方式)
  • 瀚高安全版4.5.8/4.5.9字符串默认按字节存储导致数据无法写入(APP)
  • 前端流行框架Vue3教程:20. 插槽slot(2)
  • leetcode 找到字符串中所有字母异位词 java
  • 牛顿迭代法求解除法
  • C语言中三个点代表什么含义...
  • LeetCode 438. 找到字符串中所有字母异位词 | 滑动窗口与字符计数数组解法
  • base算法
  • Web开发-Python应用Flask框架Jinja模版绑定路由参数传递页面解析SSTI注入
  • Baumer工业相机堡盟工业相机的工业视觉如何使用三色光进行字符识别检测
  • 第十六届C++B组easyQuestions
  • AI产品经理课程推荐
  • 2025ICPC南昌邀请赛-G
  • 【实验增效】5 μL/Test 高浓度液体试剂!Elabscience PE Anti-Mouse Ly6G抗体 简化流式细胞术流程
  • 【操作系统】进程同步问题——生产者-消费者问题
  • 【Git】远程操作