前言:
又快到国家公祭日了,就把指定日期网站变灰给加上了
可能方法比较笨拙,欢迎大佬指出或提供更好的方案🤣
【转载说明】本文优先发布于我的个人博客www.226yzy.com ,转载请注明出处并注明作者:星空下的YZY。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0许可协议。
js
以Hexo的Butterfly主题为例(其他的其实引入js即可)
在themes\butterfly\source\js\
下新建grayscale.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| if (mourning()) { document.getElementsByTagName("html")[0].setAttribute("style", "filter:gray !important;filter:grayscale(100%);-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);"); }
function mourning() { var Days = new Array("0512", "1213"); var currentdate = new Date(); var str = ""; var mm = currentdate.getMonth() + 1; if (currentdate.getMonth() > 9) { str += mm; } else { str += "0" + mm; } if (currentdate.getDate() > 9) { str += currentdate.getDate(); } else { str += "0" + currentdate.getDate(); } if (Days.indexOf(str) > -1) { return 1; } else { return 0; } }
|
其中var Days = new Array("0512", "1213");
可以增添合适日期,如"1213"
表示每年的12月13日(即国家公祭日)
然后,就是引入js,butterfly主题的话就在——config.yml
中的inject
的配置项bottom中添加
1
| - <script async src="/js/grayscale.js"></script>
|
但其实这有一个缺点,就是这样是全站变灰,色彩的缺失可能导致一些必要的阅读受到影响
所以最好是仅在首页页面引入
Butterfly主题仅首页变灰
我目前是通过修改主题源码的方式实现的
另外我目前Butterfly主题版本为4.1.0
增改源码在themes\butterfly\layout\includes\header\index.pug
整个改后如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| if !theme.disable_top_img && page.top_img !== false if is_post() - var top_img = page.top_img || page.cover || page.randomcover else if is_page() - var top_img = page.top_img || theme.default_top_img else if is_tag() - var top_img = theme.tag_per_img && theme.tag_per_img[page.tag] - top_img = top_img ? top_img : (theme.tag_img !== false ? theme.tag_img || theme.default_top_img : false) else if is_category() - var top_img = theme.category_per_img && theme.category_per_img[page.category] - top_img = top_img ? top_img : (theme.category_img !== false ? theme.category_img || theme.default_top_img : false) else if is_home() - var top_img = theme.index_img !== false ? theme.index_img || theme.default_top_img : false else if is_archive() - var top_img = theme.archive_img !== false ? theme.archive_img || theme.default_top_img : false else - var top_img = page.top_img || theme.default_top_img
if top_img !== false - var imgSource = top_img && top_img.indexOf('/') !== -1 ? `background-image: url('${url_for(top_img)}')` : `background: ${top_img}` - var bg_img = top_img ? imgSource : '' - var site_title = is_archive() ? fragment_cache('findArchivesTitle', function(){return findArchivesTitle(theme.menu);}) : page.title || page.tag || page.category || config.title - var isHomeClass = is_home() ? 'full_page' : 'not-home-page' - is_post() ? isHomeClass = 'post-bg' : isHomeClass else - var isHomeClass = 'not-top-img' else - var top_img = false - var isHomeClass = 'not-top-img'
header#page-header(class=isHomeClass style=bg_img) !=partial('includes/header/nav', {}, {cache: true}) script(type='text/javascript'). document.getElementsByTagName("html")[0].setAttribute("style", "filter:grayscale(0%);-webkit-filter:grayscale(0%);-moz-filter:grayscale(0%);-ms-filter:grayscale(0%);-o-filter:grayscale(0%);"); if top_img !== false if is_post() include ./post-info.pug else if is_home() #site-info h1#site-title=site_title if theme.subtitle.enable - var loadSubJs = true #site-subtitle span#subtitle if(theme.social) #site_social_icons !=fragment_cache('social', function(){return partial('includes/header/social')}) #scroll-down i.fas.fa-angle-down.scroll-down-effects script(src="/js/grayscale.js") else #page-site-info h1#site-title=site_title
|
增改的内容在第33-34行和第50行
首先是第50行的(去掉第33-34行可能在48行)
1
| script(src="/js/grayscale.js")
|
这个就是在首页引入js
这里为止我测试的效果是,直接访问非首页不变灰,访问首页变灰
通过首页访问其他页面,其他页面还是灰,但可刷新后颜色正常
通过首页访问其他页面颜色正常
在33行的位置增加
1 2
| script(type='text/javascript'). document.getElementsByTagName("html")[0].setAttribute("style", "filter:grayscale(0%);-webkit-filter:grayscale(0%);-moz-filter:grayscale(0%);-ms-filter:grayscale(0%);-o-filter:grayscale(0%);");
|
可能必交笨拙就是在其他页面将grayscale
的参数条为0%
最后
暂时就写到这了,如有错误,欢迎大佬留言指出😆
欢迎访问我的小破站https://www.226yzy.com/ 或者GitHub版镜像 https://226yzy.github.io/ 或Gitee版镜像https://yzy226.gitee.io/
我的Github:226YZY (星空下的YZY) (github.com)
【转载说明】本文优先发布于我的个人博客www.226yzy.com ,转载请注明出处并注明作者:星空下的YZY。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0许可协议。