前言 快到年了,本期分享如何给hexo博客加上灯笼,灯笼可以自动化显示和隐藏,默认显示时间为12.28-2.28,时间可以自定义修改。
添加模板文件
修改你的博客根目录\themes\butterfly\layout\includes\layout.pug
文件,在include ./head.pug
下添加include ./denlong.pug
1 2 3 4 5 6 7 8 9 10 11 doctype html html(lang=config.language data-theme=theme.display_mode class=htmlClassHideAside) head include ./head.pug include ./denlong.pug body if theme.preloader !=partial('includes/loading/loading', {}, {cache: true}) if theme.background #web_bg
在你的博客根目录\themes\butterfly\layout\includes
目录下新建denlong.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 // 左侧灯笼组 .deng-box-left .deng .xian .deng-a .deng-b .deng-t 新 .shui.shui-a .shui-c .shui-b .deng-box-left1 .deng .xian .deng-a .deng-b .deng-t 年 .shui.shui-a .shui-c .shui-b // 右侧灯笼组 .deng-box-right .deng .xian .deng-a .deng-b .deng-t 快 .shui.shui-a .shui-c .shui-b .deng-box-right1 .deng .xian .deng-a .deng-b .deng-t 乐 .shui.shui-a .shui-c .shui-b
Css文件创建 \博客根目录\source\css目录下创建denlong.css
,粘贴如下。
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 .deng-box-left { position : fixed; top : -40px ; left : -20px ; z-index : 999 ; pointer-events : none; display : none; } .deng-box-left1 { position : fixed; top : -30px ; left : 10px ; z-index : 999 ; pointer-events : none; display : none; } .deng-box-right { position : fixed; top : -40px ; right : 10px ; z-index : 999 ; pointer-events : none; display : none; } .deng-box-right1 { position : fixed; top : -30px ; right : -20px ; z-index : 999 ; pointer-events : none; display : none; } .deng { position : relative; width : 120px ; height : 90px ; margin : 50px ; background : #d8000f ; background : rgba (216 , 0 , 15 , 0.8 ); border-radius : 50% 50% ; -webkit-transform-origin : 50% -100px ; box-shadow : -5px 5px 50px 4px rgba (250 , 108 , 0 , 1 ); } .deng-box-left .deng { -webkit-animation : swing-larger 3s infinite ease-in-out; } .deng-box-left1 .deng { -webkit-animation : swing-larger 3.2s infinite ease-in-out; } .deng-box-right .deng { -webkit-animation : swing-larger 3.4s infinite ease-in-out; } .deng-box-right1 .deng { -webkit-animation : swing-larger 3.6s infinite ease-in-out; } .deng-a { width : 100px ; height : 90px ; background : #d8000f ; background : rgba (216 , 0 , 15 , 0.1 ); margin : 12px 8px 8px 8px ; border-radius : 50% 50% ; border : 2px solid #dc8f03 ; } .deng-b { width : 45px ; height : 90px ; background : #d8000f ; background : rgba (216 , 0 , 15 , 0.1 ); margin : -4px 8px 8px 26px ; border-radius : 50% 50% ; border : 2px solid #dc8f03 ; } .xian { position : absolute; top : -20px ; left : 60px ; width : 2px ; height : 20px ; background : #dc8f03 ; } .shui-a { position : relative; width : 5px ; height : 20px ; margin : -5px 0 0 59px ; -webkit-animation : swing-larger 4s infinite ease-in-out; -webkit-transform-origin : 50% -45px ; background : #ffa500 ; border-radius : 0 0 5px 5px ; } .shui-b { position : absolute; top : 14px ; left : -2px ; width : 10px ; height : 10px ; background : #dc8f03 ; border-radius : 50% ; } .shui-c { position : absolute; top : 18px ; left : -2px ; width : 10px ; height : 35px ; background : #ffa500 ; border-radius : 0 0 0 5px ; } .deng :before { position : absolute; top : -7px ; left : 29px ; height : 12px ; width : 60px ; content : " " ; display : block; z-index : 999 ; border-radius : 5px 5px 0 0 ; border : solid 1px #dc8f03 ; background : #ffa500 ; background : linear-gradient (to right, #dc8f03 , #ffa500 , #dc8f03 , #ffa500 , #dc8f03 ); } .deng :after { position : absolute; bottom : -7px ; left : 10px ; height : 12px ; width : 60px ; content : " " ; display : block; margin-left : 20px ; border-radius : 0 0 5px 5px ; border : solid 1px #dc8f03 ; background : #ffa500 ; background : linear-gradient (to right, #dc8f03 , #ffa500 , #dc8f03 , #ffa500 , #dc8f03 ); } .deng-t { font-family : 华文行楷,Arial,Lucida Grande,Tahoma,sans-serif; font-size : 3.2rem ; color : #dc8f03 ; font-weight : bold; line-height : 85px ; text-align : center; } .night .deng-t , .night .deng-box-left , .night .deng-box-left1 ,.night .deng-box-right ,.night .deng-box-right1 { background : transparent !important ; } @-webkit-keyframes swing-larger { 0% { -webkit-transform : rotate (-15deg ) } 50% { -webkit-transform : rotate (15deg ) } 100% { -webkit-transform : rotate (-15deg ) } }
js文件创建 \博客根目录\source\js目录下创建denlong.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 26 27 28 29 30 31 function shouldShowDenlong ( ) { const now = new Date (); const year = now.getFullYear (); const month = now.getMonth () + 1 ; const day = now.getDate (); if (month === 12 && day >= 28 ) return true ; if (month === 1 || (month === 2 && day <= 28 )) return true ; return false ; } function toggleDenlong ( ) { const denglong = document .querySelectorAll ('.deng-box-left, .deng-box-left1, .deng-box-right, .deng-box-right1' ); if (shouldShowDenlong ()) { denglong.forEach (el => el.style .display = 'block' ); } else { denglong.forEach (el => el.style .display = 'none' ); } } document .addEventListener ('DOMContentLoaded' , toggleDenlong);setInterval (() => { toggleDenlong (); }, 24 * 60 * 60 * 1000 );
引入css和js 在博客根目录下的_config.butterfly.yml
引入css和js。
css文件一般在head
引入,js文件一般在bottom
里引入,特殊情况除外。
1 2 3 4 5 6 7 inject: head: - <link rel="stylesheet" href="/css/denlong.css"> bottom: - <script src="/js/denlong.js"></script>:
参考:
https://linux.do/t/topic/321625
https://blog.leonus.cn/2022/custom.html