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

做瑜伽网站网站内链优化

做瑜伽网站,网站内链优化,丰城做网站,做网站业务员提成几个点在本节中,我们将完成整个 3D 主业项目中最核心的组件 —— Hero.jsx。 这个组件作为首页的主视觉部分,整合了 3D 模型、动画相机、交互按钮与自适应布局,构建出一个立体、酷炫、可交互的主场景。 前置准备: ✅安装依赖&#xff…

在本节中,我们将完成整个 3D 主业项目中最核心的组件 —— Hero.jsx
这个组件作为首页的主视觉部分,整合了 3D 模型、动画相机、交互按钮与自适应布局,构建出一个立体、酷炫、可交互的主场景。

前置准备:

  • ✅安装依赖:npm install three @react-three/fiber @react-three@drei react-responsive leva @gsap/react gsap
包名作用简述
threeThree.js 本体,WebGL 3D 渲染引擎
@react-three/fiberReact 版本的 Three.js 渲染器
@react-three/drei提供 Three.js 常用封装组件和辅助工具
react-responsive响应式 Hook(监听设备宽度)
leva一个调试控制面板工具,支持实时调整 3D 属性
gsap一个高性能、功能丰富的 JavaScript 动画库
@gsap/reactGSAP 团队推出的 React 专用集成库

🎥 03 · 完成项目核心组件Hero组件

🔍 Hero 组件的作用

Hero.jsx 是网站打开后第一个看到的 3D 场景区域。它承担着两个核心功能:

  1. 向访客展示个人身份与品牌理念(文本 + 视觉)
  2. 构建完整的 Three.js 场景:包括模型加载、光源、相机、动画控制等

🧩 涉及的关键技术点

  • react-three-fiber:Canvas 渲染、相机控制、模型嵌入
  • @react-three/drei:相机组件、异步加载
  • react-responsive:根据屏幕尺寸自适应模型大小与位置
  • 3D 子组件组合使用:HackerRoomTargetReactLogoCubeRings
  • 相机动画控制:HeroCamera
  • 按钮组件与锚点跳转:Button

📦 项目结构拆解

Hero.jsx 中,组价的层级对应:

Hero.jsx 
├── 文本介绍
├── Three.js 场景 
│ ├── Canvas 
│ │ ├── HeroCamera(自定义动画相机) 
│ │ ├── HackerRoom(主模型) 
│ │ ├── Target / Cube / Rings / ReactLogo(小精灵) 
│ │ ├── ambientLight / directionalLight (环境光 定向光源)
│ │ └── CanvasLoader(加载动画) 
└── CTA 按钮(Let's work together)

📐 响应式尺寸控制

const isSmall = useMediaQuery({ maxWidth: 440 });
const isMobile = useMediaQuery({ maxWidth: 768 });
const isTablet = useMediaQuery({ maxWidth: 1024, minWidth: 768 });const sizes = calculateSizes(isSmall, isMobile, isTablet);

这里使用 react-responsive 监听用户设备宽度,并通过 calculateSizes 函数返回对应模型的 scale / position / offset 等数据,确保在手机 / 平板 / PC 上展示效果始终协调。

🎨 Canvas 渲染部分

<Canvas className='w-full h-full'><Suspense fallback={<CanvasLoader />}><PerspectiveCamera makeDefault position={[0, 0, 20]} /><HeroCamera isMobile={isMobile}><HackerRoomscale={sizes.deskScale}position={sizes.deskPosition} rotation={[0, -Math.PI, 0]}/></HeroCamera><group><Target position={sizes.targetPosition} ></Target><ReactLogo position={sizes.reactLogoPosition}></ReactLogo><Cube position={sizes.cubePosition}></Cube><Rings position={sizes.ringPosition}></Rings></group><ambientLight intensity={1} /><directionalLight intensity={0.5} position={[10, 10, 10]} /></Suspense>
</Canvas>

这里是整片场景的构建核心:

  • PerspectiveCamera 设置视角

  • Suspense 管理加载状态

  • HeroCamera 封装了相机动画逻辑(如旋转、缩放)

  • 多个 3D 子组件以 group 形式集中管理

  • 光源使用了环境光 + 平行光混合

🧮 互动按钮区域

<a href='#about' className='w-fit'><Buttonname="Let's work together"isBeamcontainerClass='sm:w-fit w-full sm:min-w-96'/>
</a>

底部按钮使用自定义 Button 组件,点击后可跳转至页面下方 #about 区域,作为页面导航的核心 CTA(Call To Action)。

✅ 技术亮点总结

技术点描述
🎛️ useMediaQuery + calculateSizes构建响应式模型配置
📦 Suspense + CanvasLoader优雅管理异步加载
🧠 模块化组件划分每个 3D 对象独立封装,易于维护
🎥 HeroCamera控制相机视角变化,提升动态感
🧭 PerspectiveCamera + 光照系统构建真实感场景
💬 UI 与 Canvas 叠加展示实现文字/按钮与 3D 并存效果

⏭ 下一节预告:组件逐个拆解与优化

我们将在下一篇中开始我们的Work组件部分,包括:

在这里插入图片描述


如果你喜欢这篇文章,欢迎点赞、收藏、留言 💬
我们下一节见!👋

http://www.dtcms.com/wzjs/116730.html

相关文章:

  • 青海网站建设企业湖南关键词网络科技有限公司
  • 安宁网站建设a5站长网网站交易
  • 做印尼购物网站如何发货免费b站推广入口
  • 网站开发 jsp加密嘉兴seo优化
  • 佛山做网站有哪几家百度网页版首页
  • 交互型网站开发沈阳seo排名优化推广
  • wordpress分类导航模板宁波seo排名外包
  • 有什么做动画的网站知乎seo优化
  • 如何搭建一个企业子账号网站关键词排名优化技巧
  • 百度做一个网站怎么做呢推手平台哪个靠谱
  • 厦门网站建设要多少钱西安seo关键字优化
  • 网站开发与建设课程个人网站注册平台
  • 专业手机网站开发种子搜索神器网页版
  • 做网站配送地址怎么变换免费有效的推广网站
  • 重庆平台网站建设推荐网站推广费用
  • 苏州最大的网站建设公司b站视频推广网站2023
  • 西安网站建设熊掌号日本比分预测最新分析
  • 定制做网站平台seo成功的案例和分析
  • 完善运营网站建设b站新人视频怎么推广
  • wordpress google font360优化大师官方下载
  • 淮北论坛二手车长沙专业竞价优化首选
  • 查询网站最新域名南昌seo营销
  • 用python做网站的步骤网络推广优化培训
  • 网站维护客户电子商务网站推广
  • 网站怎么做图片转换360优化大师
  • 深圳网站开发培训价格莱阳seo外包
  • 秦皇岛网站建设高端网站建设公司排行
  • 网站可以做充值吗seo上海公司
  • 如何做vip影视网站如何建立独立网站
  • 视频网站策划百度推广管理平台登录