Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网站都变成灰色的了,代码是怎么实现的呢?

网站都变成灰色的了,代码是怎么实现的呢?

作者头像
程序媛淼淼
发布于 2022-12-20 08:20:28
发布于 2022-12-20 08:20:28
65000
代码可运行
举报
文章被收录于专栏:程序员阿常程序员阿常
运行总次数:0
代码可运行

大家好,我是晨光。今天来聊一聊页面的滤镜,或者说换肤更合适些。根据技术栈不同,页面换肤可以分为 web 端和 app 端,因此本文通过以下两部分介绍

  • PC 端
  • APP 端
一、PC 端

有关 PC 端的一键换肤,这个操作常用,所以大概率是有某个全局字段或者属性来控制的。接下来看我是如何一步步

1、初步定位

一开始找这个滤镜,没有在根节点下,而是在各个图片的子节点查看是否有单独的滤镜。

但找了一圈之后发现,元素上并没有新增的样式,而且属性也没有修改。突破点在下图

1)表象,按钮颜色是灰色

2)元素上没有新增 class

3)样式中背景色还是绿色

因此,推测,滤镜或者颜色并不在单个元素上,肯定在外层,查看 根节点 #app,就发现了对应的滤镜属性

2、找到关键属性

经过十几分钟,终于找到了关键属性: filter: grayscale(100%);

并且是在根节点下,以 QQ 音乐举例,一键换肤,只需给根节点 #app 加上 上面的代码即可。具体效果如下图:

再来看下去掉的效果,页面的色彩也都恢复了

尝试修改滤镜值,看看效果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
filter: blur(5px);
filter: contrast(200%);
filter: grayscale(80%);
filter: hue-rotate(90deg);
filter: drop-shadow(16px 16px 20px red) invert(75%);

感兴趣的朋友可在浏览器中进行尝试,对滤镜感兴趣的小伙伴,也可以参考文档 https://developer.mozilla.org/en-US/docs/Web/CSS/filter

二、APP 端
1、React Native

由于我负责的页面,没有涉及这方面的改动,所以对于这块不是很了解,根据搜索的资料,本地进行了尝试。但效果都不太理想。而且查看到的也只有对图片的颜色设置,没有看到关于整个页面的换肤方案。

1)方式一
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Image style={[styles.Icon, {tintColor: 'rgba(255,0,0,0.1)' }]} source={Source}>

使用 tintColor 属性,但是本地尝试添加该属性后,发现图片都不见了,取而代之都是设置的颜色值。

2)方式二

需要引入一个 npm 包,参考链接:https://github.com/iyegoroff/react-native-color-matrix-image-filters#supported-filters

大致使用方式如下:

但是晨光本地装了这个包之后,视图渲染时会有个报错

但是本地包的版本都是符合使用该组件的条件的。所以感觉这个方式也不是很靠谱,至于这个报错,晨光也没有过多的去解决。

2、Flutter

当然晨光没有进行尝试,但是大概率是可以整个也没实现 filter 滤镜的。

感兴趣的朋友可以查看:http://www.soiiy.com/flutter/12328.html

总结

整个换肤或者说给页面加滤镜的流程大致是这样,在根结点套上一层滤镜即可,但是看下来,pc端或者web端实现简单。而 app 端由于技术栈不同,且对 css 的支持也没有那么友好,所以实现起来可能略复杂。

所以这也就是为什么有点 app 是整个页面都加了滤镜,而有的只换了首屏,技术栈不同,导致有不同的换肤方案,做出的效果也参差不齐。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员阿常 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
今天网站都变成灰色了,这其中是怎么实现的?
我们的国家经历了非常惨痛的时刻,很多英雄在救助他人的路上倒下,更有很多烈士英雄保卫人民的安危遇难,今天全国下降半旗,北京时间 10 点全国默哀三分钟,来致敬英雄们。同时今天一切公共娱乐活动也都会停止,包括直播、综艺、影视、游戏等等。
章鱼猫先生
2021/10/15
4.5K0
今天网站都变成灰色了,这其中是怎么实现的?
写了个百万级的生产 bug !!!
最近这段时间躺地太平了,但是在雁卿同学的督促下,晨光觉得可以爬起来一下下。本次的分享,主要是想复盘下最近的一个生产 bug,主要内容分为如下几个部分:
程序媛淼淼
2022/12/20
4330
写了个百万级的生产 bug !!!
CSS 穿墙术,太强了
大家好,我是零一,今天给大家分享 CSS 中一个神奇的属性:filter,为什么说它神奇?正如我标题所说的,我突然发现它能帮我们轻松实现 穿墙特效,类似这种的???? 看起来就跟我们在科幻电影里看到的
@零一
2022/05/25
6800
CSS 穿墙术,太强了
网站和app 等前端产品如何变成灰色
目前主流产品的前端展示,不外乎h5 pcweb 移动web,Android原生、iOS原生、flutter 等跨平台技术。 上次默哀日的时候我还是一个app开发者,也写过类似文章,就不多赘述。
星宇大前端
2022/12/22
8150
网站和app 等前端产品如何变成灰色
开局一张图,构建神奇的 CSS 效果
在这篇文章中 --CSS 故障艺术,我们介绍了利用混合模式制作一种晕眩感觉的视觉效果。有点类似于抖音的 LOGO。
Sb_Coco
2022/12/20
5801
开局一张图,构建神奇的 CSS 效果
妙用滤镜构建高级感拉满的磨砂玻璃渐变背景
一开始是打算切图实现的,但是仔细一想,这个效果使用 CSS 其实也可以非常轻松制作出来。本文就讨论讨论:
Sb_Coco
2022/03/10
1.7K0
妙用滤镜构建高级感拉满的磨砂玻璃渐变背景
探究网站变灰色那点事
缅怀的同时,突然冒出一个问题,怎么做到的?难不成一个个调整图片,调整对应的控件色值?
贺biubiu
2020/04/23
6310
探究网站变灰色那点事
b站全灰,原来仅需一行css代码——css 滤镜
今天打开b站,看见一片灰色。对于公祭日,我们每一个人都应该为此默哀、纪念历史,都要铭记历史、热爱祖国、砥砺前行
lhyt
2022/09/21
9280
b站全灰,原来仅需一行css代码——css 滤镜
有意思!强大的 SVG 滤镜
想写一篇关于 SVG 滤镜的文章已久,SVG 滤镜的存在,让本来就非常强大的 CSS 如虎添翼。让仅仅使用 CSS/HTML/SVG 创作的效果更上一层楼。题图为袁川老师使用 SVG 滤镜实现的云彩效果 -- CodePen Demo -- Cloud (SVG filter + CSS)。
Sb_Coco
2021/03/30
1.8K0
有意思!强大的 SVG 滤镜
每个前端开发需要了解的15个强大的CSS属性
这篇文章介绍了15个重要的CSS属性,旨在提高读者的CSS知识和技能。文章以清晰的方式解释了每个属性的作用和用法,并提供了相应的示例代码。通过这篇文章,读者可以了解到一些有趣且实用的CSS属性。
前端小智@大迁世界
2023/07/22
3340
每个前端开发需要了解的15个强大的CSS属性
css3 filter滤镜属性使用
最近在修改内网门户的时候,恰好遇到了需要使用滤镜的地方;刚开始用的是两张图片;鼠标滑过背景变成渐变;图标切换;但是后台配置了图标后;导致鼠标滑过图标不能正常切换;于是就想到了滤镜的效果来处理。所以顺便学习了一下常用的滤镜效果。
微芒不朽
2022/04/28
1.3K0
CSS3魔法堂:CSS3滤镜及Canvas、SVG和IE滤镜替代方案详解
一、前言                                  IE特有的滤镜常常作为CSS3各种新特性的降级处理补充,而Adobe转向HTML5后与Chrome合作推出CSS3的Filter特性,因此当前仅Webkit内核的浏览器支持CSS3 Filter,而FF和IE10+则需要使用SVG滤镜(svg effects for html)或Canvas作为替代方案处理了,而IE5.5~9则使用IE滤镜、JS+DIV或VML处理!本篇为先占个坑,以后慢慢填^_^!!!   CSS3 Filter
^_^肥仔John
2018/01/18
2K0
CSS3魔法堂:CSS3滤镜及Canvas、SVG和IE滤镜替代方案详解
你所不知道的 CSS 滤镜技巧与细节
承接上一篇你所不知道的 CSS 动画技巧与细节,本文主要介绍 CSS 滤镜的不常用用法,希望能给读者带来一些干货! 系列 CSS 文章汇总在我的 Github ,持续更新,欢迎点个 star 订阅收藏。 OK,下面直接进入正文。本文所描述的滤镜,指的是 CSS3 出来后的滤镜,不是 IE 系列时代的滤镜,语法如下,还未接触过这个属性的可以先简单到 MDN -- filter 了解下: { filter: blur(5px); filter: brightness(0.4); filt
Sb_Coco
2018/05/28
1.1K0
网站都变成灰色了,它是怎么实现的?
想必大家都感受到了,很多网站、APP 在昨天都变灰了,变灰的原因是为了纪念一位伟人。
沉默王二
2023/03/08
1.1K0
网站都变成灰色了,它是怎么实现的?
利用CSS设置图片黑白/灰色效果
为了形成对比,我把图片引入两次,其中一个添加了一个class g ,用来给它设置样式。
德顺
2019/11/13
8.2K0
利用CSS设置图片黑白/灰色效果
【前端】CSS3常用样式详解
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 --------
CSDN-Z
2025/06/01
820
【前端】CSS3常用样式详解
几行样式代码,让你的网站全站和图片都变成灰色|CSS样式灰色代码
小编这里试用了下面的几种方法,一般用方法一的效果会更好一些,用其他的几种方法,或多或少的原来网站的部分浮动的样式或者点击效果会失效,导致功能不能用了。
小小鱼儿小小林
2020/06/24
1.1K0
几行样式代码,让你的网站全站和图片都变成灰色|CSS样式灰色代码
CSS3 滤镜 -webkit-filter 的介绍和使用
大家可能对 Instagram 这款 iPhone APP 上的滤镜效果很感兴趣,其实 CSS3 开始也有滤镜(不是 IE 的那种滤镜),这些滤镜效果最初是用于 SVG 的,W3C 将其引入到 CSS3 中,然后制定了 CSS Filter Effects 1.0 的规范,Webkit 率先支持了它。
Denis
2023/04/14
5810
CSS3 滤镜 -webkit-filter 的介绍和使用
5分钟实现漂亮的CSS加载动画,纯CSS实现加载动画
视频地址:https://www.bilibili.com/video/BV1D5411H7Tc
AlbertYang
2020/12/31
2.5K0
css3的一些属性--filter(滤镜) 属性
一般用来给图像设置高斯模糊 修改所有图片的颜色为黑白 (100% 灰度) img{ -webkit-filter:grayscale(100%);/\* Chrome, Safari, Opera \*/ filter:grayscale(100%); } 语法: filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opac
wust小吴
2019/10/31
5940
相关推荐
今天网站都变成灰色了,这其中是怎么实现的?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档