50天50個小項目 (Vue3 + Tailwindcss V4) ? | Blurry Loading (毛玻璃加載)

📅 我們繼續 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.pswp.cn/news/906840.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906840.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906840.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WPF性能優化之延遲加載(解決頁面卡頓問題)

文章目錄 前言一. 基礎知識回顧二. 問題分析三. 解決方案1. 新建一個名為DeferredContentHost的控件。2. 在DeferredContentHost控件中定義一個名為Content的object類型的依賴屬性&#xff0c;用于承載要加載的子控件。3. 在DeferredContentHost控件中定義一個名為Skeleton的ob…

VLM-MPC:自動駕駛中模型預測控制器增強視覺-語言模型

《VLM-MPC: Model Predictive Controller Augmented Vision Language Model for Autonomous Driving》2024年8月發表&#xff0c;來自威斯康星大學的論文。 受視覺語言模型&#xff08;VLM&#xff09;的緊急推理能力及其提高自動駕駛系統可理解性的潛力的啟發&#xff0c;本文…

推薦系統里真的存在“反饋循環”嗎?

推薦系統里真的存在“反饋循環”嗎&#xff1f; 許多人說&#xff0c;推薦算法不過是把用戶早已存在的興趣挖掘出來&#xff0c;你本來就愛聽流行歌、買潮牌玩具&#xff0c;系統只是在合適的時間把它們端到你面前&#xff0c;再怎么迭代&#xff0c;算法也改變不了人的天性&a…

代碼混淆技術的還原案例

案例一 eval 混淆 特征 &#xff1a; 反常的 eval 連接了一堆數據 練習網站 https://scrape.center/ spa9 這個案例 基本的還原方法 但是這個代碼還是非常的模糊不好看 優化一下 &#xff1a; 當然還有更快捷的方法 &#xff1a; 好用的 js混淆還原的 web &#xf…

鴻蒙Flutter實戰:22-混合開發詳解-2-Har包模式引入

以 Har 包的方式加載到 HarmonyOS 工程 創建工作 創建一個根目錄 mkdir ohos_flutter_module_demo這個目錄用于存放 flutter 項目和鴻蒙項目。 創建 Flutter 模塊 首先創建一個 Flutter 模塊&#xff0c;我們選擇與 ohos_app 項目同級目錄 flutter create --templatemodu…

Go核心特性與并發編程

Go核心特性與并發編程 1. 結構體與方法&#xff08;擴展&#xff09; 高級結構體特性 // 嵌套結構體與匿名字段 type Employee struct {Person // 匿名嵌入Department stringsalary float64 // 私有字段 }// 構造函數模式 func NewPerson(name string, age int) *Pe…

Java 函數式接口(Functional Interface)

一、理論說明 1. 函數式接口的定義 Java 函數式接口是一種特殊的接口&#xff0c;它只包含一個抽象方法&#xff08;Single Abstract Method, SAM&#xff09;&#xff0c;但可以包含多個默認方法或靜態方法。函數式接口是 Java 8 引入 Lambda 表達式的基礎&#xff0c;通過函…

【python代碼】一些小實驗

目錄 1. 測試Resnet50 ONNX模型的推理速度 1. 測試Resnet50 ONNX模型的推理速度 ############################### # 導出resnet50 模型 # 測試onnx模型推理 cpu 和 GPU 的對比 ###############################import time import numpy as np import onnxruntime as ort im…

5.Java 面向對象編程入門:類與對象的創建和使用?

在現實生活中&#xff0c;我們常常會接觸到各種各樣的對象&#xff0c;比如一輛汽車、一個學生、一部手機等。這些對象都具有各自的屬性和行為。例如&#xff0c;汽車有顏色、品牌、型號等屬性&#xff0c;還有啟動、加速、剎車等行為&#xff1b;學生有姓名、年齡、學號等屬性…

從開發者角度看數據庫架構進化史:JDBC - 中間件 - TiDB

作者&#xff1a; Lucien-盧西恩 原文來源&#xff1a; https://tidb.net/blog/e7034d1b Java 應用開發技術發展歷程 在業務開發早期&#xff0c;用 Java 借助 JDBC 進行數據庫操作&#xff0c;雖能實現基本交互&#xff0c;但需手動管理連接、編寫大量 SQL 及處理結果集&a…

工業智能網關建立烤漆設備故障預警及遠程診斷系統

一、項目背景 烤漆房是汽車、機械、家具等工業領域廣泛應用的設備&#xff0c;主要用于產品的表面涂裝。傳統的烤漆房控制柜采用本地控制方式&#xff0c;操作人員需在現場進行參數設置和設備控制&#xff0c;且存在設備智能化程度低、數據孤島、設備維護成本高以及依靠傳統人…

故障率預測:基于LSTM的GPU集群硬件健康監測系統(附Prometheus監控模板)

一、GPU集群健康監測的挑戰與價值 在大規模深度學習訓練場景下&#xff0c;GPU集群的硬件故障率顯著高于傳統計算設備。根據2023年MLCommons統計&#xff0c;配備8卡A100的服務器平均故障間隔時間&#xff08;MTBF&#xff09;僅為1426小時&#xff0c;其中顯存故障占比達38%&…

Vue 樣式不一致問題全面分析與解決方案

文章目錄 1. 問題概述1.1 問題表現1.2 問題影響 2. 根本原因分析2.1 Vue 的渲染機制與樣式加載時機2.2 Scoped CSS 的工作原理2.3 CSS 模塊化與作用域隔離2.4 樣式加載順序問題2.5 熱重載(HMR)與樣式更新 3. 解決方案3.1 確保樣式加載順序3.1.1 預加載關鍵 CSS3.1.2 控制全局樣…

[免費]微信小程序寵物醫院管理系統(uni-app+SpringBoot后端+Vue管理端)【論文+源碼+SQL腳本】

大家好&#xff0c;我是java1234_小鋒老師&#xff0c;看到一個不錯的微信小程序寵物醫院管理系統(uni-appSpringBoot后端Vue管理端)&#xff0c;分享下哈。 項目視頻演示 【免費】微信小程序寵物醫院管理系統(uni-appSpringBoot后端Vue管理端) Java畢業設計_嗶哩嗶哩_bilibi…

測試總結(一)

一、測試流程 參與需求評審-制定測試計劃-編寫測試用例-用例評審-冒煙測試-測試執行-缺陷管理-預發驗收測試-發布線上-線上回歸-線上觀察-項目總結 二、測試用例設計方法 等價類劃分&#xff08;處理有效/無效輸入&#xff09; 邊界值分析&#xff08;臨界值測試&#xff09…

SAP-ABAP:ABAP異常處理與SAP現代技術融合—— 面向云原生、微服務與低代碼場景的創新實踐

專題三&#xff1a;ABAP異常處理與SAP現代技術融合 —— 面向云原生、微服務與低代碼場景的創新實踐 一、SAP技術演進與異常處理的挑戰 隨著SAP技術棧向云端、微服務化和低代碼方向演進&#xff0c;異常處理面臨新場景&#xff1a; Fiori UX敏感度&#xff1a;用戶期望前端友…

DC-DC電路的自舉電容電路原理

在以往的電子產品設計中&#xff0c;我們經常會選型 DCDC 芯片&#xff0c;在選型過程中經常遇到有些DC-DC電路中需要用到自舉電容&#xff0c;本文主要分析自舉電容在DC-DC電路中的原理。 無論同步或者異步整流&#xff0c;經常會看到一個自舉電容&#xff0c;常并聯在DC-DC的…

android studio 開啟無線調試

1、在工具的模擬器點擊下后&#xff0c;會出現下面菜單&#xff1a; 選擇Pair Devices Using Wi-Fi 發現一直在轉圈&#xff0c;并不會連接上&#xff0c;之前在android12的時候&#xff0c;發現一連就上了&#xff0c;現在換成了android14&#xff0c;連不上了。 2、選擇用命令…

Go基礎語法與控制結構

Go基礎語法與控制結構 1. 環境配置與Hello World&#xff08;擴展&#xff09; 安裝指南 # 驗證安裝成功 $ go version # 設置模塊代理&#xff08;中國用戶推薦&#xff09; $ go env -w GOPROXYhttps://goproxy.cn,direct程序解剖 package main // 程序入口包聲明import…

QGIS新手教程:兩種方法創建點圖層(手動添加 + 表格導入),支持經緯度定位與查找

&#x1f30d;QGIS新手教程&#xff1a;兩種方法創建點圖層&#xff08;手動添加 表格導入&#xff09;&#xff0c;支持經緯度定位與查找 本文將手把手教你在 QGIS 中通過兩種方法創建點圖層&#xff0c;并結合經緯度定位、拾取坐標、查找屬性等功能&#xff0c;快速掌握從地…