uni-app 液态玻璃:光学参数、弹簧 Q 弹与多端降级
uni-app 液态玻璃光学参数、弹簧 Q 弹与多端降级插件lf-glass1.2.0地址https://ext.dcloud.net.cn/plugin?id27813业务场景页面需要透明玻璃卡片、标签、导航栏。H5 用backdrop-filter与 SVG 折射App-vue、nvue、uni-app x 能力不同不能同一套渲染硬跑。本文说明组件分层、关键实现、用法和真机问题。需求三类界面玻璃容器标签 / 卡片 / 面板按压反馈按下缩小抬起弹簧过冲玻璃导航栏选中项高亮块跟随切换组件对应关系场景uni-app Vueuni-app xnvue玻璃容器lf-glasslf-glass-x同目录lf-glass.nvue玻璃导航栏lf-glass-navbarlf-glass-navbar-x同目录lf-glass-navbar.nvue无第三方依赖。Vue3。小程序不支持。平台差异环境行为H5backdrop-filter SVG 折射 / 色散 弹簧缩放App-vueWebView 支持时启用backdrop-filter保留 tint、边光、高光、弹簧nvue半透明底 边光 缩放无 SVG 滤镜uni-app xlf-glass-x透明度、边框、高光、缩放渐进增强小程序不支持全平台保持同一套 props / 事件。H5 光学最完整nvue / uni-app x App 为拟态降级不与 H5 像素级一致。渲染分层Vue 版根节点 transform(scale) ├─ H5 SVG filter折射 / 色散 ├─ warp / tint 底色 ├─ bezel / edge-dark / edge-light ├─ side-light / shine / specular └─ contentslot安装与引入目录uni_modules/lf-glasseasycom/uni_modules自动扫描后直接写标签。手动引入importLfGlassfrom/uni_modules/lf-glass/components/lf-glass/lf-glass.vueimportLfGlassNavbarfrom/uni_modules/lf-glass/components/lf-glass-navbar/lf-glass-navbar.vue同目录存在.vue与.nvue时vue 页面用.vuenvue 页面用.nvue。不要在pages.jsoneasycom 里写死.vue路径否则 nvue 无法命中。快速上手lf-glass sizecard tintclear intensitymedium :radius24 :quality2 :refractive-index1.35 :glass-thickness160 :bezel-width20 :specular-angle60 :scale-multiplier1.12 :scale-duration380 easing-typespring readyonReady view液态玻璃/view /lf-glass导航栏lf-glass-navbar v-modelcurrent :itemsitems :height60 :quality1 tintdark /constcurrentref(0)constitems[{id:home,label:首页},{id:list,label:发现,icon:/static/tab/list.png},{id:mine,label:我的,icon:我}]icon规则http(s)://、/本地路径、data:image、常见图片后缀 → 图片其他字符串 → 文本图标uni-app xlf-glass-x tintdark intensitymedium :radius20 :quality1 textGlass X/text /lf-glass-x关键实现quality 性能档utils.js中resolveQualityProfile控制是否启用折射、色散、specularquality行为使用场景1关闭 SVG 折射与 specular导航栏、列表、弱设备2默认光学普通卡片3更高位移与高光H5 焦点展示导航栏外壳默认quality1。一页多个玻璃实例时优先1避免多路 SVG 滤镜拖慢页面。tint / intensity / edgePresettintdark/light/clear决定底色倾向tintColor/backgroundColor覆盖底色intensity未传blur/opacity时提供默认模糊与透明度edgePreset只调整边框与高光权重不覆盖opacity/tint错误做法edgePreset写死整块背景色导致外部传入的opacity失效。当前实现已拆开底色走 tint 逻辑边光单独乘权重。H5 SVG 折射条件isH5 distortion qualityProfile.useDistortion。滤镜链路feTurbulence生成噪声feGaussianBlur软化feDisplacementMap位移 SourceGraphicRGB 通道feColorMatrixfeBlend做色散复合回原图位移量与refractiveIndex、glassThickness、displacementScale、quality相关。滤镜尺寸用ResizeObserver不支持则降级测量更新避免容器变大后滤镜区域不够。弹簧 Q 弹createSpringAnimator刚度 阻尼向目标收敛带过冲。存在requestAnimationFrame时用 rAFApp 无 rAF 时用setTimeout。scaleDuration通过springParamsFromDuration推导刚度与阻尼保证不同时长手感接近。也可显式传springStiffness/springDamping覆盖。按压流程touchstart/mousedown→ 目标activeScale默认 0.97touchend/mouseup→ 先冲到scaleMultiplier再回到1pressablefalse或scalablefalse时关闭该反馈。导航栏外壳关闭按压避免整条栏跟着弹。导航栏 thumbthumb 不用第二套完整玻璃只用轻量高光层。定位itemWidth 0按固定宽度计算itemWidth 0均分测量每个 item 真实宽度再定位错误做法均分场景按「总宽 / n」估算窄屏或文字宽度不一致时 thumb 偏移。当前实现在布局后读取实测宽度。Props 摘要lf-glass 基础属性默认说明sizetagtag/card/paneltintdarkdark/light/clearintensitymediumsoft/medium/strongradius12圆角单位 rpxblur / opacity—显式值优先于 intensityblurEnabletrue是否启用背景模糊edgePresetautoauto/light/darkquality2性能档 1 / 2 / 3光学属性默认说明distortiontrueH5 SVG 折射开关仍受 quality 约束refractiveIndex1.3折射率glassThickness120厚度感bezelWidth18内沿specularOpacity0.85高光强度specularAngle60高光角度aberrationIntensity0.7色散Q 弹属性默认说明pressabletrue按压反馈scalabletrue允许缩放scaleMultiplier1.08抬起过冲scaleDuration420动画时长mseasingTypespringspring/easeactiveScale0.97按下缩放lf-glass-navbar属性默认说明modelValue0当前索引v-modelitems[]{ id, label, icon? }height64高度单位 pxitemWidth00为均分quality1外壳性能档tint / intensity / radius 等—透传外壳玻璃事件事件组件说明clicklf-glass点击readylf-glass初始化完成返回平台与质量信息errorlf-glass滤镜或尺寸测量异常update:modelValue / changenavbar选中变化inputnavbarVue2 兼容选中变化用法示例卡片lf-glass sizecard tintdark intensitysoft :radius22 :quality2 edge-presetdark view classpad text光学玻璃/text /view /lf-glass列表项省电lf-glass v-foritem in list :keyitem.id sizetag :quality1 :distortionfalse tintdark intensitymedium text{{ item.title }}/text /lf-glass导航栏自定义颜色lf-glass-navbar v-modelcurrent :itemsitems :quality1 tintdark text-colorrgba(255,255,255,0.72) text-color-active#ffffff icon-colorrgba(255,255,255,0.72) icon-color-active#3ec4a8 /Demo 注册{path:uni_modules/lf-glass/pages/demo/demo,style:{navigationBarTitleText:液态玻璃,navigationBarBackgroundColor:#0b1218,navigationBarTextStyle:white}}uni.navigateTo({url:/uni_modules/lf-glass/pages/demo/demo})真机问题纯色背景上看不出玻璃玻璃依赖背后图片、渐变或复杂内容。纯色底缺少可折射 / 可模糊的信息。Demo 使用渐变或图片底。App-vue 模糊很弱或没有依赖 WebView 对backdrop-filter/-webkit-backdrop-filter的支持。不支持时仍保留 tint、边光、高光不会整块空白。列表卡顿多个quality2/3且开启 SVG 折射。列表、Tab、导航栏使用quality1或distortionfalse。edgePreset改完透明度不对旧实现把背景色写死。当前edgePreset只调边光权重透明度用opacity/intensity/tint。导航栏 thumb 跑偏均分模式下按理论宽度估算导致。使用实测 item 宽度定位窄屏控制items ≤ 5。nvue 没有折射nvue 无 SVG filter。参数映射到透明度、边框、高光与缩放。不要按 H5 截图像素对比。easycom 写死.vue后 nvue 失效nvue 页面无法命中同目录.nvue。删除写死路径交给自动解析。弹簧在 App 上不跟手无 rAF 时走setTimeout。调整scaleDuration或显式设置springStiffness/springDamping。外网背景图失败整页空白Demo 已加本地渐变兜底。业务页对image做error换本地底。小程序编译报错或无效果插件不支持小程序不要接入。圆角单位搞错lf-glass的radius单位是 rpx导航栏height单位是 px。混用导致比例失调。导航栏嵌套第二套完整玻璃做 thumb成本高、易糊。当前 thumb 为轻量高光层不要改回完整lf-glass嵌套。排查监听初始化onReady(payload){console.log(payload)// { platform, quality, distortion, blurEnable }}检查项背后是否有可见背景当前quality/distortion/blurEnableApp 端 WebView 是否支持 backdrop-filter看 tint 是否在、模糊是否在列表场景实例数量与 quality 档位nvue 是否误用了写死.vue的 easycom源码目录uni_modules/lf-glass/ ├── components/ │ ├── lf-glass/ # .vue .nvue utils.js │ ├── lf-glass-navbar/ # .vue .nvue │ ├── lf-glass-x/ # uni-app x │ └── lf-glass-navbar-x/ ├── pages/demo/demo.vue ├── readme.md ├── changelog.md └── article.md接入要求插件放到uni_modules/lf-glass注册 Demo 或业务页玻璃后方放置图片或渐变列表 / 导航栏使用quality1nvue / uni-app x 在对应环境验证不与 H5 截图逐像素对比easycom 不要写死.vue路径调用示例lf-glass sizecard tintclear :quality2 easing-typespring view液态玻璃/view /lf-glass问题反馈插件https://ext.dcloud.net.cn/plugin?id27813邮箱lingfugroupgmail.com

相关新闻

elementplus结合sortablejs做出表格可拖拽效果的组件

elementplus结合sortablejs做出表格可拖拽效果的组件

1.安装npm install sortablejs2.在src下新建可复用的组合式函数文件夹composables,src/composables/useSortableDrag.jsimport { ref, onMounted, onBeforeUnmount, nextTick } from vue import Sortable from sortablejs/*** 拖拽排序配置选项* typedef {Object} S…

2026/9/26 21:24:47 阅读更多 →
CTFSHOW-WEB(萌新18-22)

CTFSHOW-WEB(萌新18-22)

web18 1.本题比上一题多过滤了一个file,但是和上一题的思路一样:Nginx 访问日志路径 /var/log/nginx/access.log 不包含 php、file 这两个被拦截字符串,所以上一题的日志投毒方法依然可以直接使用。 2.按照上面的思路,我们直接进…

2026/10/5 14:14:03 阅读更多 →
腾讯云OpenClaw智能开发平台一键部署与优化指南

腾讯云OpenClaw智能开发平台一键部署与优化指南

1. OpenClaw与Clawdbot项目概述 OpenClaw(又称Clawdbot)是腾讯云生态中快速崛起的一站式智能开发平台,它通过模块化技能包(Skills)和可视化编排能力,让开发者能够快速构建AI应用。这个平台最吸引人的特点在…

2026/10/10 22:18:40 阅读更多 →

最新新闻

Proxmark3 RDV4.01:Windows 11 下 Iceman 固件升级与完整使用指南

Proxmark3 RDV4.01:Windows 11 下 Iceman 固件升级与完整使用指南

1. 前言 Proxmark3 是一款开源的 RFID/NFC 协议研究设备,支持高频(HF)和低频(LF)射频技术,可用于卡片识别、协议分析、通信监听、射频信号采样及授权安全测试。 本文使用 Proxmark3 RDV4.01,原…

2026/10/11 5:10:34 阅读更多 →
测试用例设计全攻略:从等价类到场景法,实战组合拳

测试用例设计全攻略:从等价类到场景法,实战组合拳

软件开发这行做了十几年,其中有大半时间泡在测试领域。我见过太多测试新人甚至部分老手,拿到需求就闷头写用例,写出来的东西洋洋洒洒几百条,真正上线前评审一看,核心场景漏了,边界条件没覆盖,异…

2026/10/11 5:10:34 阅读更多 →
集体好奇心如何驱动团队知识分享:从提问到回应的完整链路与落地方法

集体好奇心如何驱动团队知识分享:从提问到回应的完整链路与落地方法

1. "集体好奇心"通常不是被个人压住的,而是被环境压住的1.1 一个我反复见到的场景:会后私聊很热闹,会上鸦雀无声有次我参加一个产品团队的复盘会,项目上线延期了两周。按道理这种会议应该很热闹,但那天反常地…

2026/10/11 5:10:34 阅读更多 →
# STM32平衡车开发日记 — 速度环:从悖论到闭环(附完整代码)

# STM32平衡车开发日记 — 速度环:从悖论到闭环(附完整代码)

一、前言 上一篇文章我们搭好了串级PID的骨架,让平衡车能站稳——角度环保持在0,车身不倒了。 但站稳只是第一步。一辆实用的平衡车需要能听话地前进后退:你推摇杆往前,它就按你指定的速度往前走;推摇杆往后&#xf…

2026/10/11 5:10:34 阅读更多 →
小程序版「死了么」:人生进度可视化工具开发全复盘

小程序版「死了么」:人生进度可视化工具开发全复盘

第一次看到“微信小程序版「死了么APP」,它来了”这句话的人,多半会愣一下:这名字也太直白了吧?但稍微了解过互联网老梗的读者应该知道,“死了么”并不是真的在做死亡直播,而是网友对“寿命倒计时、人生剩余…

2026/10/11 5:10:34 阅读更多 →
具身智能创新原理(211):赋能果蔬柔性采摘与农田全域智能巡检

具身智能创新原理(211):赋能果蔬柔性采摘与农田全域智能巡检

前沿技术探索:TVA智能体(简称TVA)TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&…

2026/10/11 5:09:34 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →