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

陈江做网站seo学校培训班

陈江做网站,seo学校培训班,杭州市拱墅区疫情最新消息,做企业展示型网站📅 我们继续 50 个小项目挑战!—— Blurry Loading 组件 仓库地址:https://github.com/SunACong/50-vue-projects 项目预览地址:https://50-vue-projects.vercel.app/ ✨ 组件目标 实现一个加载进度条,随着加载进度的…

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

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

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

在这里插入图片描述


✨ 组件目标

  • 实现一个加载进度条,随着加载进度的增加,背景图像逐渐从模糊变清晰

  • 展示一个百分比数字,表示当前的加载进度

  • 整个过程无需外部库,完全依赖 Vue3 和 Tailwind CSS


🧱 技术实现点

  • Vue3 的响应式状态管理(ref)

  • 使用 onMounted 和 onBeforeUnmount 生命周期钩子管理定时器

  • Tailwind CSS 的 absolute、inset-0、bg-cover、bg-center 等布局类

  • 动态绑定内联样式,实现模糊效果的渐变

🔧 BlurryLoading.vue 组件实现

<template><div class="relative h-screen w-screen"><div:style="{ filter: `blur(${blurPx}px)` }"class="absolute inset-0 bg-[url('https://images.unsplash.com/photo-1576161787924-01bb08dad4a4?auto=format&fit=crop&w=2104&q=80')] bg-cover bg-center bg-no-repeat"></div><div class="absolute inset-0 flex items-center justify-center"><div class="text-5xl font-bold text-gray-300">{{ loading }}%</div></div></div>
</template><script setup>
import { ref, onMounted, onBeforeUnmount } from 'vue'const loading = ref(0)
const blurPx = ref(30)let intervalonMounted(() => {interval = setInterval(() => {if (loading.value < 100) {loading.value += 2blurPx.value = 30 * (1 - loading.value / 100)} else {clearInterval(interval)}}, 30)
})onBeforeUnmount(() => {clearInterval(interval)
})
</script>

⭐ 渐显效果

  • ref 变量 opacity,根据 loading.value 动态变化,随着加载进度的推进从 0 线性增长到 1
  • 配合 transition-opacity duration-500 的 Tailwind 类,使背景图从完全透明渐显到完全不透明。
  • 为任何元素设置 :style="{ opacity: xxx }" 配合 Tailwind 的过渡类,都可以实现渐显。

💡 TailwindCSS 样式重点讲解

类名功能描述
absolute inset-0使元素绝对定位并填满父容器
bg-cover背景图像覆盖整个容器
bg-[url(xxx)]设置背景图像
bg-center背景图像居中显示
bg-no-repeat背景图像不重复
text-5xl设置字体大小为 5xl
font-bold设置字体加粗
text-gray-300设置字体颜色为灰色(300)

🦌 常量定义 + 组件路由

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

export const projectList = [
{id: 5,title: 'Blurry Loading',image: 'https://50projects50days.com/img/projects-img/5-blurry-loading.png',link: 'BlurryLoading',}
]

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

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

🚀 小结

这个组件展示了如何结合 Vue3 的响应式特性和 Tailwind CSS 的实用工具类,实现一个动态的加载效果。通过动态调整背景图像的模糊程度,提升了用户体验。

📅 明日预告:Scroll Animation!实现滚动动画组件。

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

相关文章:

  • 做网站公司深外呼系统电销
  • 富阳网站建设 优帮云公司软文代写
  • 怎样做视频直播网站seo营销方案
  • 淘宝推广网站建设西安seo培训
  • 深圳市网站建设哪家好营销推广方式
  • 公司概况介绍怎么写seo的流程是怎么样的
  • wordpress支付平台郑州网站优化
  • 深圳市龙岗区平湖疫情最新消息长尾词优化外包
  • wordpress不同分类调用不同文章seo是指什么意思
  • 网站框架图新闻发稿软文推广
  • 一蓝网站建设百度百科查询
  • 常州网站优化在线发外链工具
  • 做最好的在线看片网站专业seo网站优化推广排名教程
  • 网站平面图要怎么做网站推广方式
  • 网站后台管理功能营销型网站制作成都
  • 把html文件生成网址seo站长网
  • 如何申请开通网站谷歌广告开户
  • 上海网站建设找缘魁淘宝关键词怎么优化
  • 做网站用小公司还是大公司微商怎么找客源人脉
  • 酒店网站建设方案书seo经典案例
  • 网站百度一直没有收录响应式网站建设
  • 网站建设未验收会计账务处理百度推广优化方案
  • 毕业网站建设ppt软文广告经典案例
  • 主流开发工具有哪些seo关键词大搜
  • 企业网站建设哪家网络推广网站建设
  • 如何做外贸独立网站外贸找客户有什么网站
  • 做网站输入文本框做下拉网址域名ip查询
  • vps搭建网站教程企业培训视频
  • 有微信公众号怎么做微网站seo网站排名优化快速排
  • 9元包邮网站怎么做百度软件