純 CSS 實現的的3種掃光效果

介紹一個比較常見的動畫效果。

在日常開發中,為了強調凸顯某些文本或者元素,會加一些掃光動效,起到吸引眼球的效果,比如文本的

或者是一個卡片容器,里面可能是圖片或者文本或者任意元素

除此之外,還有那種不規則的圖片,比如獎品圖案

這些是如何實現的呢?一起看看吧

一、CSS 掃光的原理
CSS掃光動畫的原理很簡單,就是一個普通的、從左到右的、無限循環的位移動畫

位移動畫可以選擇transform或者改變background-position都行。

至于掃光,我們只需要繪制一條斜向上45deg的線性漸變就可以了,示意如下

用CSS實現就是

background: linear-gradient(45deg, rgba(255,255,255,0) 40%, rgba(255, 255, 255, 0.7), rgba(255,255,255,0) 60%);
1.
準備工作做好了,下面看 3 種不同場景的實現

二、文本掃光
首先來看文本掃光。

由于掃光在文本內部,所以需要將這個漸變作為文本的顏色。文本漸變色,可以用backgrond-clip:text來實現,假設HTML是這樣的

前端偵探

1. 為了讓效果看起來更加明顯,我們用一個比較粗的字體

h1{
font-size: 60px;
font-family: “RZGFDHDHJ”;
font-weight: normal;
color: #9747FF;
}
1.
2.
3.
4.
5.
6.
效果如下

現在我們通過background-clip來添加掃光,由于是裁剪背景,所以需要將當前文本顏色設置透明,建議通過-webkit-text-fill-color: transparent來設置,這樣可以保留文本原有顏色,好處是其他地方,比如background-color可以直接使用原有文本顏色currentColor,具體實現如下

.shark-txt{
-webkit-text-fill-color: transparent;
background: linear-gradient(45deg, rgba(255,255,255,0) 40%, rgba(255, 255, 255, 0.7), rgba(255,255,255,0) 60%) -100%/50% no-repeat currentColor;
-webkit-background-clip: text;
}
1.
2.
3.
4.
5.
效果如下

最后就是讓這個掃光動起來了。

由于是在文本內部,所以這里可以通過改變background-position來實現掃光動畫了,動畫很簡單,如下

@keyframes shark-txt {
form{
background-position: -100%;
}
to {
background-position: 200%;
}
}
1.
2.
3.
4.
5.
6.
7.
8.
但是這樣做沒有動畫效果,完全不會動。

這是因為背景默認尺寸是100%,根據背景偏移百分比的計算規則,當背景尺寸等于容器尺寸時,百分比完全失效,具體規則如下

給定背景圖像位置的百分比偏移量是相對于容器的。值 0% 表示背景圖像的左(或上)邊界與容器的相應左(或上)邊界對齊,或者說圖像的 0% 標記將位于容器的 0% 標記上。值為 100% 表示背景圖像的 右(或 下)邊界與容器的 右(或 下)邊界對齊,或者說圖像的 100% 標記將位于容器的 100% 標記上。因此 50% 的值表示水平或垂直居中背景圖像,因為圖像的 50% 將位于容器的 50% 標記處。類似的,background-position: 25% 75% 表示圖像上的左側 25% 和頂部 75% 的位置將放置在距容器左側 25% 和距容器頂部 75% 的容器位置。

https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-p…

(container width - image width) * (position x%) = (x offset value)
(container height - image height) * (position y%) = (y offset value)
1.
2.
所以這種情況下,我們可以手動改小一點背景尺寸,比如50%

.shark-txt {
-webkit-text-fill-color: transparent;
background: linear-gradient(45deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0) 60%) -100% / 50% no-repeat currentColor;
-webkit-background-clip: text;
animation: shark-txt 2s infinite;
}
1.
2.
3.
4.
5.
6.
這樣就能完美實現文本掃光效果了

三、卡片容器掃光
還有一種比較常見的是容器內的掃光動效,通常是在一個圓角矩形的容器里。

像這種情況下就不能直接用背景漸變了,因為會被容器內的其他元素覆蓋。所以我們需要創建一個偽元素,然后通過改變偽元素的位移來實現掃光動畫了。

假設有一個容器,容器內有一張圖片,HTML如下

1. 2. 3. 簡單修飾一下

.card{
width: 300px;
border-radius: 8px;
background-color: #FFE8A3;
}
.card img{
display: block;
width: 100%;
}
1.
2.
3.
4.
5.
6.
7.
8.
9.
效果如下

下面通過偽元素來創建一個掃光層,設置位移動畫

.shark-wrap::after{
content: ‘’;
position: absolute;
inset: -20%;
background: linear-gradient(45deg, rgba(255,255,255,0) 40%, rgba(255, 255, 255, 0.7), rgba(255,255,255,0) 60%);
animation: shark-wrap 2s infinite;
transform: translateX(-100%);
}
@keyframes shark-wrap {
to {
transform: translateX(100%);
}
}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
效果如下

最后直接超出隱藏就行了

.shark-wrap{
overflow: hidden;
}
1.
2.
3.
最終效果如下

也適合那種圓形頭像

四、不規則圖片掃光
其實前面兩種情況已經適合大部分場景了,其實還有一種情況,就是那種不規則的圖片掃光。這種圖片無法直接通過overflow:hidden去隱藏多余部分,比如這樣

很明顯在圖片之外的地方也出現了掃光,無法做到掃光在圖形的"內部"。

那么,有沒有辦法根據圖片的外形去裁剪呢?當然也是有辦法的,這里需要用到CSS mask遮罩。

www.xbtourism.com
szdfyh.com
m.szdfyh.com
www.szdfyh.com
guohenghb.com

簡單來說,就是直接將該圖片作為遮罩圖片,這樣只有形狀內的部分可見,形狀外的直接被裁剪了

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

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

相關文章

如何在FastAPI中構建一個既安全又靈活的多層級權限系統?

title: 如何在FastAPI中構建一個既安全又靈活的多層級權限系統? date: 2025/06/14 12:43:05 updated: 2025/06/14 12:43:05 author: cmdragon excerpt: FastAPI通過依賴注入系統和OAuth2、JWT等安全方案,支持構建多層級權限系統。系統設計包括基于角色的訪問控制、細粒度權…

大模型_Ubuntu24.04安裝RagFlow_使用hyper-v虛擬機_超級詳細--人工智能工作筆記0251

因為之前使用dify搭建了一個知識庫,但是dify的效果,尤其是在文檔解析方面是非常不友好的,雖然測試了,納米的效果非常好,但是納米只能容納2000個文件,如果 你的知識庫中有代碼,sql文件等等&…

LeetCode - LCR 173. 點名

題目 LCR 173. 點名 - 力扣(LeetCode) 思路 首先對數組進行排序,使學號按順序排列 在排序后的數組中,如果沒有缺失的學號,那么每個元素應該等于其索引值 使用二分查找找到第一個不等于其索引的元素位置&#xff1…

VSCode如何優雅的debug python文件,包括外部命令uv run main.py等等

debug程序的方式有很多種。每一種方式都各有缺點:有的方式雖然優雅,但是局限性很大;有的方式麻煩,但是局限性小。 常規方式: 優點:然后可以觀察所有線程。一勞永逸。缺點:就是寫參數很麻煩,但是你可以讓chatgpt等大模型幫你寫。最最最優雅的方式: 優點:就是需要在代碼…

[調試技巧]VS Code如何在代理模式下使用 MCP 工具?

在開發環境調試MCP,通過agent模式與大模型對話,并不能保證每次均正確調用tool。在閱讀官方文檔之后,得知以下小技巧。 添加 MCP 服務器后,您可以在代理模式下使用它提供的工具。要在代理模式下使用 MCP 工具 打開聊天視圖 (CtrlAl…

京東零售基于Flink的推薦系統智能數據體系 |Flink Forward Asia 峰會實錄分享

京東推薦系統的數據體系極其復雜,從召回、模型到策略和效果評估,每個環節都需要強大的海量數據處理能力支撐。然而,在實際運行中,整個數據鏈路面臨著諸多挑戰:如實時與離線數據的埋點口徑不一致、數倉模型存在偏差、計…

[學習] 牛頓迭代法:從數學原理到實戰

牛頓迭代法:從數學原理到實戰 ——高效求解方程根的數值方法 文章目錄 牛頓迭代法:從數學原理到實戰一、引言:為什么需要牛頓迭代法?二、數學原理:幾何直觀與公式推導1. **核心思想**2. **幾何解釋**3. **收斂性分析*…

使用 Git 將本地倉庫上傳到 GitHub 倉庫的完整指南

使用 Git 將本地倉庫上傳到 GitHub 倉庫的完整指南 一、引言 在現代軟件開發中,版本控制工具 Git 已成為不可或缺的一部分。GitHub 作為全球最大的代碼托管平臺,為開發者提供了代碼協作、項目管理和開源貢獻的便捷方式。本文將詳細介紹如何通過 Git 將本…

數據結構 - 棧與隊列

棧:限定僅在表尾進行插入或刪除操作的線性表。 表尾端有特殊含義,稱為棧頂(top)。 相應的,表頭端稱為棧底(buttom)。不含元素的空表成為空棧。 棧又稱為后進先出的線性表(Last In…

jojojojojo

《JOJO的奇妙冒險》是由日本漫畫家荒木飛呂彥所著漫畫。漫畫于1987年至2004年在集英社的少年漫畫雜志少年JUMP上連載(1987年12號刊-2004年47號刊),2005年后在集英社青年漫畫雜志Ultra Jumphttps://baike.baidu.com/item/Ultra%20Jump/2222322…

統計學核心概念與現實應用精解(偏機器學習)

統計學聽起來似乎很復雜,但其實它的核心就是兩個概念:概率分布和期望。這兩個概念就像是我們日常生活中的決策助手。 概率分布描述了隨機事件各種可能結果出現的可能性大小。比如,擲骰子時每個點數出現的概率,這就是一個典型的概…

go-carbon v2.6.8 發布,輕量級、語義化、對開發者友好的 golang 時間處理庫

carbon 是一個輕量級、語義化、對開發者友好的 Golang 時間處理庫,提供了對時間穿越、時間差值、時間極值、時間判斷、星座、星座、農歷、儒略日 / 簡化儒略日、波斯歷 / 伊朗歷的支持。 carbon 目前已捐贈給 dromara 開源組織,已被 awesome-go 收錄&am…

228永磁同步電機無速度算法--基于雙重鎖相環的滑模觀測器

一、原理介紹 在傳統的正交鎖相環的基礎上,利用前述濾波器、ZOH、代數環等非理想因素對電流信號進行延遲重構,進而得到一個與實際電流信號存在相位偏差的重構信號,且該相位偏差等同于初步估計位置信號與實際位置信號之間的相位偏差。將該重構…

零基礎入門 線性代數

線性代數是一種代數結構,通俗來講,向量空間是這個結構的基石,我們要在向量空間中研究向量與向量的關系 一 對象:向量 各位都有對象嘛?如果沒有對象,想不想知道你們的天命之人是誰捏?如果有對象…

IO之cout格式控制

目錄 簡單了解cout是什么? 什么是字節流 默認格式控制 修改計數系統 調整字符寬度 填充字符 設置浮點數顯示精度 打印末尾的0和小數點 其他格式控制符 right--->設置為右對齊,永久生效 left--->設置為左對齊,永久生效 fixed--…

探索鑄鐵試驗平臺在制造行業的卓越價值

鑄鐵試驗平臺在制造行業中具有重要的價值和作用。以下是鑄鐵試驗平臺在制造行業中的卓越價值: 提高產品質量:鑄鐵試驗平臺可以模擬各種生產條件和環境,并對鑄鐵產品進行精確的測試和評估。通過實驗平臺的測試,可以發現產品在不同條…

gpt3大模型蒸餾后效果會變差么

模型蒸餾(Model Distillation)是將復雜的 “教師模型”(如 GPT-3)的知識遷移到更輕量級的 “學生模型” 上的技術。蒸餾后的模型效果是否會變差,取決于多種因素,不能一概而論。以下是詳細分析: …

SQL進階之旅 Day 30:SQL性能調優實戰案例

【SQL進階之旅 Day 30】SQL性能調優實戰案例 文章簡述: 在數據庫系統中,SQL查詢的性能直接影響到整個應用的響應速度和用戶體驗。本文作為“SQL進階之旅”系列的第30天,聚焦于SQL性能調優實戰案例,通過多個真實業務場景中的SQL優…

【61 Pandas+Pyecharts | 基于Apriori算法及帕累托算法的超市銷售數據分析可視化】

文章目錄 🏳??🌈 1. 導入模塊🏳??🌈 2. Pandas數據處理2.1 讀取數據2.2 數據信息2.3 數據去重2.4 訂單日期處理提取年份2.5 產品名稱處理 🏳??🌈 3. Pyecharts數據可視化3.1 每年銷售額和利潤分布3.2…

每日算法刷題Day31 6.14:leetcode二分答案2道題,結束二分答案,開始枚舉技巧,用時1h10min

7. 1439.有序矩陣中的第K個最小數組和(困難,學習轉化為373) 1439. 有序矩陣中的第 k 個最小數組和 - 力扣(LeetCode) 思想 1.給你一個 m * n 的矩陣 mat,以及一個整數 k ,矩陣中的每一行都以非遞減的順序排列。 你可以從每一行…