前端實現ios26最新液態玻璃效果!

先看效果圖
請添加圖片描述

實現步驟

先定義玻璃元素和液態濾鏡

<!--玻璃容器-->
<div class="glass-container"><!--使用液態濾鏡--><div class="glass-filter"></div><!--邊沿效果--><div class="glass-specular"></div>
</div><!--創建液態濾鏡-->
<svg style="display: none"><filter height="100%" id="lg-dist" width="100%" x="0%" y="0%"><!--生成噪聲圖案--><feTurbulence baseFrequency="0.008 0.008" numOctaves="2" result="noise" seed="92" type="fractalNoise"/><!--模糊噪聲--><feGaussianBlur in="noise" result="blurred" stdDeviation="2"/><!--根據模糊噪聲的處理結果,形成扭曲效果--><feDisplacementMap in="SourceGraphic" in2="blurred" scale="70" xChannelSelector="R" yChannelSelector="G"/></filter>
</svg>

編寫玻璃元素的樣式,以及應用液態濾鏡

.glass-container {position: fixed;overflow: hidden;box-shadow: 0 6px 6px rgba(0, 0, 0, 0.2), 0 0 20px rgba(0, 0, 0, 0.1);border-radius: 200px;width: 200px;height: 200px;background: rgba(255, 255, 255, 0.25);}.glass-filter {position: absolute;inset: 0;z-index: 0;backdrop-filter: blur(4px);filter: url(#lg-dist); /*創建獨立渲染區,防止影響容器中的內容*/isolation: isolate;}.glass-specular {position: absolute;inset: 0;z-index: 2;border-radius: inherit;overflow: hidden;box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.75),inset 0 0 5px rgba(255, 255, 255, 0.75);}

實現原理

這樣一個液態玻璃效果就實現了,是不是非常簡單,現在來說下實現原理

 <filter height="100%" id="lg-dist" width="100%" x="0%" y="0%">作用:定義一個 SVG 濾鏡效果。屬性:id="lg-dist":濾鏡的唯一標識符,供 CSS 中通過 url(#lg-dist) 引用。width="100%" 和 height="100%":濾鏡作用區域為整個目標元素的寬高。x="0%" 和 y="0%":定義濾鏡區域相對于目標元素的位置(左上角開始)。
 <feTurbulence baseFrequency="0.008 0.008" numOctaves="2" result="noise" seed="92" type="fractalNoise"/>作用:生成分形噪聲紋理,作為后續扭曲效果的基礎。屬性:type="fractalNoise":使用分形噪聲算法生成紋理。baseFrequency="0.008 0.008":控制噪聲的顆粒密度(值越小,顆粒越大)。numOctaves="2":噪聲疊加的層級數,影響紋理復雜度。result="noise":將該步驟的結果命名為 noise,供后續濾鏡操作引用。seed="92":隨機種子值,確保每次生成相同的噪聲圖案。
 <feGaussianBlur in="noise" result="blurred" stdDeviation="2"/>作用:對前面生成的噪聲進行模糊處理,使其更柔和。屬性:in="noise":輸入源為之前生成的 noise。result="blurred":將該步驟的結果命名為 blurred。stdDeviation="2":高斯模糊的標準差,數值越大模糊程度越高。
<feDisplacementMap in="SourceGraphic" in2="blurred" scale="70" xChannelSelector="R" yChannelSelector="G"/>
作用:根據 blurred 圖像的顏色通道來偏移原始圖像,形成扭曲效果。
屬性:
in="SourceGraphic":主輸入源為目標元素本身。
in2="blurred":第二輸入源為模糊后的噪聲圖像。
scale="70":控制位移強度,值越大扭曲越明顯。
xChannelSelector="R":X 方向上的位移由紅色通道決定。
yChannelSelector="G":Y 方向上的位移由綠色通道決定。

完整代碼

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<style>body {margin: 0;height: 100vh;background: url("引用自己的背景圖") center no-repeat;background-size: 100% 100%;}.glass-container {position: fixed;overflow: hidden;box-shadow: 0 6px 6px rgba(0, 0, 0, 0.2), 0 0 20px rgba(0, 0, 0, 0.1);border-radius: 200px;width: 200px;height: 200px;background: rgba(255, 255, 255, 0.25);}.glass-filter {position: absolute;inset: 0;z-index: 0;backdrop-filter: blur(4px);filter: url(#lg-dist);/*創建獨立渲染區,防止影響容器中的內容*/isolation: isolate;}.glass-specular {position: absolute;inset: 0;z-index: 2;border-radius: inherit;overflow: hidden;box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.75),inset 0 0 5px rgba(255, 255, 255, 0.75);}</style>
<body>
<!--玻璃容器-->
<div class="glass-container"><!--使用液態濾鏡--><div class="glass-filter"></div><!--邊沿效果--><div class="glass-specular"></div>
</div><!--創建液態濾鏡-->
<svg style="display: none"><filter height="100%" id="lg-dist" width="100%" x="0%" y="0%"><!--生成噪聲圖案--><feTurbulence baseFrequency="0.008 0.008" numOctaves="2" result="noise" seed="92" type="fractalNoise"/><!--模糊噪聲--><feGaussianBlur in="noise" result="blurred" stdDeviation="2"/><!--根據模糊噪聲的處理結果,形成扭曲效果--><feDisplacementMap in="SourceGraphic" in2="blurred" scale="70" xChannelSelector="R" yChannelSelector="G"/></filter>
</svg><script>window.onload = () => {const container = document.querySelector('.glass-container')document.onmousemove = (e) => {container.style.left = e.x - 100 + 'px'container.style.top = e.y - 100 + 'px'}}
</script>
</body>
</html>

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

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

相關文章

麒麟系統集成開發環境Kylin-IDE初體驗,菜鳥小白入門教程

一、安裝Kylin-IDE 1、打開應用商店&#xff0c;轉到“軟件”->“開發”頁面&#xff0c;找到“Kylin-IDE”&#xff0c;點下載。&#xff08;也可以在搜索欄搜索Kylin-IDE&#xff09; 2、等待Kylin-IDE下載并自動安裝完成。 3、雙擊桌面的Kylin-IDE圖標。 4、自動彈出“開…

Python爬蟲實戰:研究Bleach庫相關技術

一、引言 1.1 研究背景與意義 隨著互聯網的快速發展,網絡上的數據量呈爆炸式增長。網絡爬蟲作為一種自動獲取網頁內容的技術,能夠高效地從互聯網上收集所需信息,為數據分析、信息檢索、輿情監測等應用提供基礎。然而,爬取到的網頁內容往往包含大量的 HTML 標簽、JavaScri…

分布假設學習筆記

文章目錄 分布假設學習筆記自然語言處理中的分布假設應用場景適用范圍 Word2vec、BERT和GPTWord2vecBERTGPT 假設成立嗎 分布假設學習筆記 自然語言處理中的分布假設 分布假設&#xff08;Distributional Hypothesis&#xff09;是指&#xff1a;詞語在相似上下文中出現&…

提升開發思維的設計模式(上)

1. 設計模式簡介 [設計模式]&#xff08;Design pattern&#xff09; 是解決軟件開發某些特定問題而提出的一些解決方案也可以理解成解決問題的一些思路。通過設計模式可以幫助我們增強代碼的[可重用性]、可擴充性、 可維護性、靈活性好。我們使用設計模式最終的目的是實現代碼…

LINUX613計劃測put

FTP put ┌────────────────────────────────────────────────────────────────────┐│ ? MobaXterm 20.0 ? ││ (SSH client, X-serv…

NB-IoT-下行同步、廣播信道和信號

這一篇主要講解以下NPSS/NSSS/NPBCH信號的具體細節。還是依然先分析時頻資源&#xff0c;再分析具體信號細節。 1、NPSS信道和信號 NPSS信號總是在每個無線幀的子幀5上。使用符號為3~13個OFDM符號&#xff0c;子載波使用0~10號&#xff08;11個子載波&#xff09;。如果部署為…

Java TCP網絡編程核心指南

Java網絡編程中TCP通信詳解 TCP (Transmission Control Protocol) 是互聯網中最核心的傳輸層協議&#xff0c;提供可靠的、面向連接的字節流傳輸服務。在Java網絡編程中&#xff0c;TCP通信主要通過Socket和ServerSocket類實現。 一、TCP核心特性與Java實現 特性描述Java實現…

SVN遷移Git(保留歷史提交記錄)

第一步&#xff1a;安裝git 下載地址&#xff1a;https://gitforwindows.org/ 第二步&#xff1a;先創建一個git創庫&#xff0c;&#xff08;創建過程忽略&#xff09; 第三步&#xff1a;本地新建一個空的項目文件夾&#xff0c;用于存放要遷移的項目代碼&#xff0c;我這創…

9.IP數據包分片計算

IP數據報分片計算 題目1&#xff1a;主機發送5400字節數據&#xff0c;MTU1400字節&#xff08;IPv4&#xff09;&#xff0c;填寫分片后的字段值。 解答&#xff1a; 分片規則&#xff1a; 每片數據長度盡量接近MTU&#xff08;1400B&#xff09;&#xff0c;IP首部20B&…

pmset - 控制 macOS 系統電源、睡眠、喚醒與節能

文章目錄 NAME概要描述SETTINGSETTINGSGETTING安全睡眠參數待機參數UPS 專用參數計劃事件參數電源參數說明其他參數示例另請參閱文件 NAME pmset – manipulate power management settings概要 pmset [-a | -b | -c | -u] [setting value] [...]pmset -u [haltlevel percent]…

網絡安全防護:點擊劫持

目錄 1、概念 2、攻擊原理&#xff1a;視覺欺騙與層疊控制 3、點擊劫持的危害 4、防御點擊劫持 4.1 X-Frame-Options HTTP 響應頭 (最直接有效) 4.2 Content-Security-Policy (CSP) HTTP 響應頭 (現代、更強大) 4.3 客戶端 JavaScript 防御 (Frame Busting) 1、概念 點…

Spring Boot常用依賴大全:從入門到精通

springboot <!-- Spring Boot 的 Spring Web MVC 集成 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 注解校驗代替ifelse --> <de…

Linux系統下安裝elasticsearch6.8并配置ik分詞

準備安裝包和環境 jdk 由于es是基于java開發的所以需要安裝jdk。如果沒有安裝的話 jdk8下載 下載后配置環境變量安裝。 es es6.8下載地址 elasticsearch-6.8.14.tar.gz ik分詞器 es分詞器需要下載對應es版本的 elasticsearch-analysis-ik-6.8.14.zip 安裝es es不推薦使…

OceanBase (DBA)一面面經

1. Oracle高可用和ob高可用&#xff0c;和他們的實現方式&#xff1f; 2.ob的三副本了解嗎&#xff0c;ob的三副本怎么保障強一致的&#xff1f; 3.三副本能實現強一致嗎&#xff1f; 4.了解ob的數據協調協議嗎&#xff1f;說說原理 5.聊聊Oracle&#xff0c;講一些SQL調優…

PyTorch框架詳解(1)

目錄 代碼會放在每條解釋的后面 一.概念&#xff1a; 2.張量的概念&#xff1a; 3.張量的創建 4.張量的數據類型及轉換 二.tensor和numpy互轉 三.張量的運算 四.索引的操作 五.張量形狀操作 維度交換&#xff1a; 六.張量拼接操作 代碼會放在每條解釋的后面 一.概念…

Spring Boot 與 Kafka 的深度集成實踐(一)

引言 ** 在當今的軟件開發領域&#xff0c;構建高效、可靠的分布式系統是眾多開發者追求的目標。Spring Boot 作為 Java 生態系統中極具影響力的框架&#xff0c;極大地簡化了企業級應用的開發流程&#xff0c;提升了開發效率和應用的可維護性。它基于 Spring 框架構建&#…

PIN to PIN兼容設計:MT8370與MT8390核心板開發對比與優化建議

X8390 是基于聯發科 MT8390 CPU 的一款開發板&#xff0c; MT8390 與 MT8370 是 PIN to PIN 的封裝&#xff0c;可以共用一個核心 板。 MT8390 (Genio 700) 是一款高性能的邊緣 AI 物聯網平臺&#xff0c;廣泛應用于智能家居、交 互式零售、工業和商業等領域。它采用…

【論文解讀】START:自學習的工具使用者模型

1st author: ?Chengpeng Li? - ?Google 學術搜索? paper: [2503.04625] START: Self-taught Reasoner with Tools code: 暫未公布 5. 總結 (結果先行) 大型語言推理模型&#xff08;Large Reasoning Models, LRMs&#xff09;在模擬人類復雜推理方面取得了顯著進展&…

【GitOps】Kubernetes安裝ArgoCD,使用阿里云MSE云原生網關暴露服務

?? ArgoCD是什么? ArgoCD是一款開源的持續交付(CD)工具,專門為Kubernetes環境設計。它采用GitOps理念,將Git倉庫作為應用部署的唯一真實來源(SSOT),實現了聲明式的應用部署和管理。 簡單來說,ArgoCD就像是一位不知疲倦的"倉庫管理員",時刻盯著你的Git倉庫,…

三維重建 —— 1. 攝像機幾何

文章目錄 1. 針孔相機1.1. 針孔成像1.2. 光圈對成像的影響 2. 透視投影相機2.1. 透鏡成像2.2. 失焦2.3. 徑向畸變2.4. 透視投影的性質 3. 世界坐標系到像素坐標系的變換4. 其它相機模型4.1. 弱透視投影攝像機4.2. 正交投影攝像機4.3. 各種攝像機模型的應用場合 課程視頻鏈接&am…