有趣的css - 移形換位加載動畫

大家好,我是 Just,這里是「設計師工作日常」,今天分享的是一個移形換位動態加載小動效,適用于 app 列表加載,頁面加載或者圖片懶加載等場景。

最新文章通過公眾號「設計師工作日常」發布。


目錄

  • 整體效果
  • 核心代碼
    • html 代碼
    • css 部分代碼
  • 完整代碼如下
    • html 頁面
    • css 樣式
    • 頁面渲染效果

整體效果

💎知識點:
1?? transform 形變 rotate(n) 旋轉屬性
2?? :before 以及 :after 偽元素
3?? animation 動畫以及關鍵幀參數
4?? position 定位

🔑思路:
創建三個矩形元素,通過 animation 動畫,讓三個矩形元素循環移動到不同的位置上。

適用于 app 列表加載,頁面加載或者圖片懶加載等場景。


核心代碼部分,簡要說明了寫法思路;完整代碼在最后,可直接復制到本地運行。

核心代碼

html 代碼

<div class="loading65"><div class="rectangle65"></div>
</div>

加載動畫整體 html 標簽布局。

css 部分代碼

.loading65{position: relative;transform: rotate(45deg);
}
.loading65:before,.rectangle65::before,.rectangle65::after{content: '';width: 14px;height: 14px;border: 2px solid #333333;border-radius: 4px;box-sizing: border-box;position: absolute;
}
.loading65:before{top: 0;left: 0;animation: eff651 4s ease-in-out infinite;animation-delay: 0.45s;
}
.rectangle65::before{top: 12px;left: 0px;animation: eff652 4s ease-in-out infinite;animation-delay: 0.65s;
}
.rectangle65::after{top: 0px;left: 12px;animation: eff653 4s ease-in-out infinite;animation-delay: 0.25s;
}
@keyframes eff651{0%,10%{top: 0;left: 0;}15%,35%{top: 0;left: 12px;}40%,60%{top: 12px;left: 12px;}65%,85%{top: 12px;left: 0;}90%,100%{top: 0;left: 0;}
}
@keyframes eff652{0%,10%{top: 12px;left: 0;}15%,35%{top: 0;left: 0;}40%,60%{top: 0;left: 12px;}65%,85%{top: 12px;left: 12px;}90%,100%{top: 12px;left: 0;}
}
@keyframes eff653{0%,10%{top: 0;left: 12px;}15%,35%{top: 12px;left: 12px;}40%,60%{top: 12px;left: 0;}65%,85%{top: 0;left: 0;}90%,100%{top: 0;left: 12px;}
}

1、分別基于 .loading65.rectangle65 創建偽元素 .loading65:before , .rectangle65::before , .rectangle65::after ,并且分別定義這 3 個偽元素的通用尺寸大小,形成 3 個同樣大小的矩形邊框。

2、然后通過 position 定位屬性,分別調整這 3 個矩形邊框的 topleft 值,讓這 3 個矩形邊框元素形成一個小 L 形狀。

3、利用 transform 形變 rotate(n) 旋轉屬性,給整個加載主體 .loading65 旋轉 45°,整體形狀成向上的簡約箭頭,更具設計感。

4、分別給這 3 個矩形邊框元素,添加 animation 動畫,增加關鍵幀參數,讓這 3 個矩形邊框元素不停的移形換位;最后分別增加不同的 animation-delay 屬性值,讓這 3 個矩形邊框元素分別延遲播放動畫,最終形成視覺上的移形換位且有停頓感。

完整代碼如下

html 頁面

<!DOCTYPE html>
<html lang="zh"><head><meta charset="utf-8"><link rel="stylesheet" href="style.css"><title>移形換位加載動畫</title></head><body><div class="app"><div class="loading65"><div class="rectangle65"></div></div></div></body>
</html>

css 樣式

/** style.css **/
.app{width: 100%;height: 100vh;background-color: #ffffff;position: relative;display: flex;justify-content: center;align-items: center;
}
.loading65{position: relative;transform: rotate(45deg);
}
.loading65:before,.rectangle65::before,.rectangle65::after{content: '';width: 14px;height: 14px;border: 2px solid #333333;border-radius: 4px;box-sizing: border-box;position: absolute;
}
.loading65:before{top: 0;left: 0;animation: eff651 4s ease-in-out infinite;animation-delay: 0.45s;
}
.rectangle65::before{top: 12px;left: 0px;animation: eff652 4s ease-in-out infinite;animation-delay: 0.65s;
}
.rectangle65::after{top: 0px;left: 12px;animation: eff653 4s ease-in-out infinite;animation-delay: 0.25s;
}
@keyframes eff651{0%,10%{top: 0;left: 0;}15%,35%{top: 0;left: 12px;}40%,60%{top: 12px;left: 12px;}65%,85%{top: 12px;left: 0;}90%,100%{top: 0;left: 0;}
}
@keyframes eff652{0%,10%{top: 12px;left: 0;}15%,35%{top: 0;left: 0;}40%,60%{top: 0;left: 12px;}65%,85%{top: 12px;left: 12px;}90%,100%{top: 12px;left: 0;}
}
@keyframes eff653{0%,10%{top: 0;left: 12px;}15%,35%{top: 12px;left: 12px;}40%,60%{top: 12px;left: 0;}65%,85%{top: 0;left: 0;}90%,100%{top: 0;left: 12px;}
}

頁面渲染效果

以上就是所有代碼,以及簡單的思路,希望對你有一些幫助或者啟發。


[1] 原文閱讀


CSS 是一種很酷很有趣的計算機語言,在這里跟大家分享一些 CSS 實例 Demo,為學習者獲取靈感和思路提供一點幫助,希望你們喜歡。

我是 Just,這里是「設計師工作日常」,求點贊求關注!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15170.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15170.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15170.shtml

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

相關文章

2024上海初中生古詩文大會倒計時4個月:單選題真題解析(持續)

現在距離2024年初中生古詩文大會還有4個多月時間&#xff0c;我們繼續來看10道選擇題真題和詳細解析&#xff0c;以下題目截取自我獨家制作的在線真題集&#xff0c;都是來自于歷屆真題&#xff0c;去重、合并后&#xff0c;每道題都有參考答案和解析。 為幫助孩子自測和練習&…

C#基礎一

使用Visual Studio 2022&#xff08;VS2022&#xff09;編寫C#控制臺程序 1. 安裝Visual Studio 2022 確保已安裝Visual Studio 2022。如果未安裝&#xff0c;請從Visual Studio官網下載并安裝。 另一篇文章中已經有詳細描述&#xff0c;這里就不在細說了。 VisualStudio2022…

【LeetCode】【209】長度最小的子數組(1488字)

文章目錄 [toc]題目描述樣例輸入輸出與解釋樣例1樣例2樣例3 提示進階Python實現前綴和二分查找滑動窗口 個人主頁&#xff1a;丷從心 系列專欄&#xff1a;LeetCode 刷題指南&#xff1a;LeetCode刷題指南 題目描述 給定一個含有n個正整數的數組和一個正整數target找出該數組…

Effective C++(2)

文章目錄 2. 構造、析構、賦值運算條款05&#xff1a;了解C默默編寫并調用哪些函數條款06&#xff1a;若不想使用編譯器自動生成的函數&#xff0c;就該明確拒絕條款07&#xff1a;為多態基類聲明virtual析構函數條款08&#xff1a;別讓異常逃離析構函數條款09&#xff1a;絕不…

微信小程序報錯:notifyBLECharacteristicValueChange:fail:nodescriptor的解決辦法

文章目錄 一、發現問題二、分析問題二、解決問題 一、發現問題 微信小程序報錯&#xff1a;notifyBLECharacteristicValueChange:fail:nodescriptor 二、分析問題 這個提示有點問題&#xff0c;應該是該Characteristic的Descriptor有問題&#xff0c;而不能說nodescriptor。 …

web前端之解決img元素組件自有高度的問題

MENU 前言解決辦法vertical-align 前言 在HTML和CSS中&#xff0c;img元素默認是行內元素(inline element)&#xff0c;類似于文本。由于文本有基線(baseline)&#xff0c;所以即使是空白的img元素也會占據一定的高度&#xff0c;以便使基線對齊。 解決辦法 要解決這個問題&…

axios如何傳遞數組作為參數,后端又如何接收呢????

前端的參數是一個數組。 前端編寫&#xff1a; 后端接收&#xff1a;

Iterater迭代器和增強for循環

1、Collection接口遍歷元素—Iterator迭代器 看一下下面這張圖片&#xff1a;可以看出Collection接口有一個父接口Iterable&#xff0c;Iterable接口有一個iterator()方法&#xff0c;iterator()方法的類型是Iterator迭代器&#xff0c;實際上當我們使用方法時&#xff0c;返回…

Go語言的pprof工具是如何使用的?

文章目錄 Go語言的pprof工具詳解pprof的使用runtime/pprofnet/http/pprof 快速開始獲取采樣數據通過pprof工具進行性能分析總結 Go語言的pprof工具詳解 Go語言作為一個高性能、高并發的編程語言&#xff0c;對性能優化有著極高的要求。在Go語言的標準庫中&#xff0c;pprof是一…

linux 安全 iptables防火墻 (一)

Linux包過濾防火墻概述 Linux 系統的防火墻 &#xff1a;IP信息包過濾系統&#xff0c;它實際上由兩個組件netfilter 和 iptables組成。 主要工作在網絡層&#xff0c;針對IP數據包。體現在對包內的IP地址、端口、協議等信息的處理上。 兩大組件 netfilter內核組件 iptables應…

blender安裝cats-blender-plugin-0-19-0插件,導入pmx三維模型

UE5系列文章目錄 文章目錄 UE5系列文章目錄前言一、Blender安裝二、cats-blender-plugin-0-19-0插件下載三、下載bmp文件四、在blender2.93中安裝cats-blender-plugin-0-19-0插件 前言 blender本身不支持pmx三維模型&#xff0c;需要用到cats-blender-plugin-0-19-0插件。 一…

構建全面的無障礙學習環境:科技之光,照亮學習之旅

在信息與科技日益發展的當下&#xff0c;為所有人群提供一個包容和平等的學習環境顯得尤為重要&#xff0c;特別是對于盲人朋友而言&#xff0c;無障礙學習環境的構建成為了一項亟待關注與深化的課題。一款名為“蝙蝠避障”的輔助軟件&#xff0c;以其創新的設計理念與實用功能…

Offline RL : Context-Former: Stitching via Latent Conditioned Sequence Modeling

paper 基于HIM的離線RL算法&#xff0c;解決基于序列模型的離線強化學習算法缺乏對序列拼接能力。 Intro 文章提出了ContextFormer&#xff0c;旨在解決決策變換器&#xff08;Decision Transformer, DT&#xff09;在軌跡拼接&#xff08;stitching&#xff09;能力上的不足…

新定義單片機的說明

新定義的官網是https://www.rdsmcu.com/shop/#/,主要經營的是1T系列的51單片機&#xff0c;之前從他們官網上申請了評估板&#xff0c;自己頁玩了一段時間&#xff0c;不過玩的不多&#xff0c;特開此專欄記錄學習過程&#xff0c;并幫助剛入門的道友快速上手。 我申請的是評估…

DQL(數據查詢)

目錄 1. DQL概念 2. DQL - 編寫順序 3. 基礎查詢 3.1 查詢多個字段 3.2 字段設置別名 3.3 去除重復記錄 3.4 案例 4. 條件查詢 4.1 語法 4.2 條件 4.3 案例&#xff1a; 5. 聚合函數 5.1 常見的聚合函數&#xff1a; 5.2 語法 5.3 案例&#xff1a; 6. 分組查…

VScode SSH連接遠程服務器報錯

一、報錯 通過VScode SSH插件遠程連接服務器&#xff0c;輸入密碼后沒有連接成功&#xff0c;一直跳出輸入密碼界面&#xff0c;在輸出界面里&#xff0c;一直是Waiting for server log或者是顯示Cannot not find minimist 二、處理 &#x1f431;&#xff1a; 這個時候應該…

力扣每日一題 5/25

題目&#xff1a; 給你一個下標從 0 開始、長度為 n 的整數數組 nums &#xff0c;以及整數 indexDifference 和整數 valueDifference 。 你的任務是從范圍 [0, n - 1] 內找出 2 個滿足下述所有條件的下標 i 和 j &#xff1a; abs(i - j) > indexDifference 且abs(nums…

CTF網絡安全大賽web題目:字符?正則?

題目來源于&#xff1a;bugku 題目難度&#xff1a;難 題目描  述: 字符&#xff1f;正則&#xff1f; 題目htmnl源代碼&#xff1a; <code><span style"color: #000000"> <span style"color: #0000BB"><?php <br />highl…

C-數據結構-鏈式存儲棧(二次封裝)

/* 二次封裝 借用已經實現雙向鏈表結構來實現 棧 出棧入棧操作類似于 從頭節點開始的插入和刪除 */ llist.h #ifndef LLIST_H__ #define LLSIT_H__ #define LLIST_FORWARD 1 #definr LLIST_BACKWARD 2 typedef void llist_op(const void *);//回調函數 typedef int llist_cmp…

分組排序取最大sql理解

分組排序取最大sql理解 --用戶過濾&#xff08;只能看到當前用戶對應部門用戶權限表中的部門&#xff09; select h.pk_tbdept from jygyl_bmyhqxb h left join jygyl_bmyhqxb_b b on h.pk_bmyhqx b.pk_bmyhqx where isnull(h.dr,0) 0 and isnull(b.dr,0) 0 and b.pk…