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

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Rotating Navigation (旋转导航)

📅 我们继续 50 个小项目挑战!—— Rotating Navigation 组件

仓库地址:🔗https://github.com/SunACong/50-vue-projects
项目预览地址:🔗https://50-vue-projects.vercel.app/


在这里插入图片描述

✨ 组件目标

  • 🌀 实现一个旋转按钮动画菜单,点击按钮后页面整体旋转并展示侧边菜单
  • 📱 菜单项带动画滑入效果,按钮提供“展开/关闭”两种状态
  • 🎯 运用 transitionrotate 动画提升用户交互体验

🧱 技术实现点

  • 使用 Vue 3 + ref 实现菜单状态管理
  • 使用 Tailwind CSS 实现旋转、位移、过渡、定位等动画效果
  • 组件内嵌头部内容模拟文章内容(用于旋转效果展示)
  • 左侧导航使用 translate-x 控制菜单显隐

🔧 RotatingNavigation.vue 组件实现

<template><div:class="['origin-top-left bg-white transition-all duration-500 ease-in-out',turnRotate ? '-rotate-30' : 'rotate-0',]"><div:class="['fixed -top-20 -left-20 transition-all duration-700 ease-in-out',turnRotate ? '-rotate-[65deg]' : 'rotate-0',]"@click="turnRotate = !turnRotate"><div class="h-40 w-40 rounded-full bg-fuchsia-300 text-white"><button class="absolute right-10 bottom-7 text-3xl"></button><button class="absolute bottom-8 left-8 text-3xl">×</button></div></div><div class="mx-28 flex flex-col items-start gap-2 px-50 pt-30"><h1 class="head-text">Amazing Article</h1><small>Florin Pop</small><p class="base-text mt-4">Lorem ipsum dolor sit amet consectetur adipisicing elit...(略)</p><h3 class="sub-text mt-4">My Dog</h3><imgsrc="https://images.unsplash.com/photo-1507146426996-ef05306b995a"alt="doggy" /><p class="base-text">Lorem, ipsum dolor sit amet consectetur adipisicing elit...(略)</p></div></div><div><nav:class="['fixed bottom-40 left-0 z-10 text-white transition-all duration-500 ease-in-out',turnRotate ? 'translate-x-0' : '-translate-x-[200px]',]"><ul class="list-none pl-8"><li class="my-10 uppercase transition-all duration-500 ease-in">🏠 <a href="#">Home</a></li><li class="my-10 translate-x-4/12 uppercase transition-all duration-500 ease-in">👋 <a href="#">About</a></li><li class="my-10 translate-x-8/12 uppercase transition-all duration-500 ease-in">📧 <a href="#">Contact</a></li></ul></nav></div>
</template><script setup></script>

💡 Tailwind CSS 样式重点讲解

类名说明
rotate-0 / -rotate-30控制容器旋转角度
transition-all duration-500添加平滑过渡动画
translate-x-0 / -translate-x-[200px]控制菜单移入移出位置
fixed / absolute控制定位,便于按钮和菜单固定显示位置
ease-in-out / ease-in设置动画速率函数
rounded-full / bg-fuchsia-300控制按钮样式

🦌 常量定义 + 组件路由

constants/index.js

export const projectList = [{id: 3,title: 'Rotating Navigation Animation',image: 'https://50projects50days.com/img/projects-img/3-rotating-navigation-animation.png',link: 'RotatingNavigationAnimation',}
]

router/index.js

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

🚀 小结

本组件通过 rotatetranslate 结合 Vue 的响应式状态,构建出一个带旋转动效的侧边导航菜单。

  • 💡 利用 Tailwind 的 origin-top-left 实现旋转中心
  • 🎬 点击按钮时,实现 rotate + translate 的流畅转场动画
  • 🧠 实现简单逻辑切换,用户体验感强,交互感十足

📅 明日预告:Hidden Search Widget!用一个按钮展开搜索框。

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

相关文章:

  • 在 Win 10 上,Tcl/Tk 脚本2个示例
  • ubuntu kubeasz 部署高可用k8s 集群
  • 电磁感应在量子计算中如何应用
  • day018-磁盘管理-案例
  • Babylon.js学习之路《六、材质与纹理:为模型赋予真实的表面效果》
  • 医疗影像中,DICOM点云、三角面片实体混合渲染(VR)
  • Oracle中如何解决FREE BUFFER WAITS
  • Oracle基础知识
  • Redis哨兵(Sentinel)模式详解:构建高可用Redis架构
  • 【c# 中 == 和jave 的== 区别】
  • 数据库与存储安全
  • 演示:【WPF-WinCC3D】 3D工业组态监控平台源代码
  • 深入理解Redis Cluster:架构、原理与实践
  • 【latex】文本颜色修改
  • 解决 Incorrect username or password (access token)
  • 系统架构设计(十七):微服务数据一致性和高可用策略
  • 黑马Java基础笔记-13常用查找算法
  • MySql数据库连接池
  • Xshell传输文件
  • KLEC--基于知识学习的演化计算算法
  • 国家能源局:4月份全社会用电量同比增长4.7%
  • 痴情与真爱
  • 国家发改委:不断完善稳就业稳经济的政策工具箱,确保必要时能够及时出台实施
  • 北京人艺新戏《一日顶流》将出现人工智能角色
  • 红星控股重整期间实控人被留置后续:重整草案不会修改,涉车建兴职责已调整
  • 集齐中国泳坛“老中青”!200自潘展乐力压汪顺、孙杨夺冠