小程序追悼模式
背景
因公众人物逝世,公众事件等因素,需要进行追悼,各类媒体首页会进行置灰,为实现置灰效果,做如下技术方案介绍
技术方案
- 采用
css
的filter
实现置灰:
css
.jz-global-mourning{
filter: grayscale(100%)
}
- 由于
filter
会破坏position
定位效果,导致布局混乱,采用特定标签加特定类名的方式进行置灰控制:
方案1:https://www.jianshu.com/p/1ef1fe054c0f
但是小程序没有html
,只有page
,应用方案1会导致安卓下tabbar
定位丢失底部固定的效果,故此采用如下方案2:https://blog.csdn.net/my_bo/article/details/123657133
css
image, button, text, span, video, [class^='icon-'], [class*='icon-'], [class^='icon_'], [class*='icon_'], .jz-global-mourning{
filter: var(--global-mourning)
}
- 数据开关来自
$store.state.vuex_commData.isMourning
,对应后台的greyConfig
文件的同名字段 - 如果要加上这个灰色效果,使用如下全局类名加到对应的节点
html
<view class='jz-global-mourning'></view>