前端实现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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…