讲师中心 微信公众号

工具推荐

视频效率加速
updream

一键生成高质量推广成片

剧云
剧云

中文短剧剧本制作平台

Seko
Seko

AI短剧一键生成成片

Laper
Laper

剧本策划到成片协作

layui怎么实现全站置灰效果(公祭日/哀悼日全局滤镜一键开启)

小强酱_7594

小强酱_7594

发布时间:2026-11-09 10:48:30

|

612人浏览过

|

来源于php中文网

原创

全站置灰最直接方案是给body设置filter: grayscale(100%),现代浏览器均支持;需补充overflow: hidden并注意弹层、iframe、字体图标等边界情况。

layui怎么实现全站置灰效果(公祭日/哀悼日全局滤镜一键开启)

全站置灰用 CSS filter 最直接

不需要改 HTML 结构或 JS 逻辑,filter: grayscale(100%) 是最轻量、兼容性最好的方案。现代浏览器(Chrome 53+、Firefox 35+、Safari 6.1+、Edge 12+)都支持,Layui 本身不干预页面样式,所以直接作用于 body 即可生效。

常见错误是只给某个容器加滤镜,结果弹层(如 layer.open 弹窗、laydate 日历面板)没灰掉——因为它们默认用 position: fixed 或挂载到 document.body 底层,必须确保滤镜作用在顶层容器上。

  • ✅ 正确做法:给 body 加 filter,并补充 overflow: hidden 防止滚动条干扰视觉一致性
  • ⚠️ 注意:IE 完全不支持 filter: grayscale,若需兼容 IE,得回退到 SVG 滤镜或 canvas 覆盖(极不推荐,维护成本高)
  • ? 小技巧:加 transition: filter 0.3s 让开关更平滑,避免突兀闪变

一键开关建议封装成独立函数

别把逻辑散落在各处,尤其当需要响应后台配置(比如从接口读取“是否启用哀悼模式”)时,统一入口才可控。Layui 项目通常有全局 JS 入口(如 index.js 或 common.js),在这里定义 toggleGrayscale 最合适。

示例:

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
function toggleGrayscale(enable) {
  const body = document.body;
  if (enable) {
    body.style.filter = 'grayscale(100%)';
    body.style.overflow = 'hidden';
  } else {
    body.style.filter = '';
    body.style.overflow = '';
  }
}
// 调用
toggleGrayscale(true); // 开启
toggleGrayscale(false); // 关闭
  • 不要用 classList.add/remove 管理 filter——CSS 类无法覆盖内联 style 的优先级,容易失效
  • 如果用了 Layui 的 layer,注意它创建的浮层 DOM 在 body 下,所以 body 滤镜天然生效,无需额外处理
  • 若页面有 iframe(比如嵌入地图、视频),其内容不会被父页 filter 影响,需单独控制或提示“外部资源不参与置灰”

和 Layui 主题色/图标冲突怎么办

Layui 默认图标(如 layui-icon)本质是字体图标,grayscale(100%) 会把它变灰,但文字颜色(如按钮文字)若原本就是灰色,可能对比度不足导致看不清。这不是 bug,而是滤镜对所有像素一视同仁的结果。

  • ✅ 解决方法:在开启置灰时,同步微调关键文本色,例如给 .layui-btn 加 color: #333 !important(仅当灰度后文字发虚时才加)
  • ❌ 不要试图用 JS 遍历所有元素改 color——滤镜已生效,再改色只会让颜色叠加灰度,更难看
  • ⚠️ 特别注意:Layui 的 loading 动画(layui-icon-loading)旋转时若灰度太重,可能感知不到动效,可临时替换为纯 CSS 动画或静默提示

上线前必须验证的三个边界点

置灰不是加个样式就完事,真实场景下容易漏掉这些:

  • 移动端:iOS Safari 对 filter 在 fixed 元素上偶有渲染异常,务必真机测试弹窗、下拉刷新组件是否同步灰化
  • 富文本内容:若页面含 layedit 编辑器,其 iframe 内容不受父页 filter 影响,需在初始化时注入内联样式 html { filter: grayscale(100%) }
  • 服务端渲染(SSR)或静态页:如果首页是后端吐出的 HTML,记得把 body 的 style="filter: grayscale(100%)" 也写死进去,避免首屏闪白

最麻烦的其实是时间精度——公祭日往往精确到小时,别只靠前端定时器切换,得和服务端时间对齐,否则用户本地时间不准会导致误开/误关。

热门AI工具

更多
墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2903

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

6343

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

7250

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

7098

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

1003

2024.05.22

css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2140

2023.06.14

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3486

2023.11.01

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

20

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 13.2万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11.5万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn