想在博客侧边栏放一个既实用又有节日氛围的新年小工具?一套侧边栏元旦装饰代码就能搞定。它基于自定义HTML小工具实现,把代码粘贴进去,侧边栏就会多出一个红金配色的节日卡片:实时新年倒计时、飘雪、宫灯和祝福语一应俱全。本文提供一套即贴即用的博客侧边栏装饰代码,包含完整代码、安装步骤、配置说明和常见问题,兼容绝大多数支持自定义HTML小工具的博客系统。
[codecard]
元旦快乐
愿新的一年 · 万事胜意
00天
00时
00分
00秒
岁岁常欢愉 · 年年皆胜意
所求皆如愿 · 所行化坦途
[/codecard]
01 这套侧边栏小工具代码的特点
和全站装饰不同,这套博客侧边栏元旦代码是固定在小工具容器内自包含的卡片,不会干扰正文,在设计和实现上有几个明显的优点。
-
自包含、可独立使用:卡片的所有样式、脚本和结构都在一段代码内,不依赖主题,也不影响页面其他区域。
-
自动适配宽度:代码使用 width:100%,侧边栏多宽卡片就多宽;移动端侧边栏变为全宽时也能正常显示。
-
实时新年倒计时:自动计算到下一个 1 月 1 日的天数、时、分、秒,每秒刷新,实用又有节日感。
-
纯CSS + 原生JS:零依赖、无外部请求,粘贴即用,不拖慢网站。
-
作用域隔离、不冲突:所有选择器都以 #nyw-card 为作用域,不会与博客主题样式互相干扰。
02 小工具的装饰效果
这套侧边栏节日小工具在卡片内提供了四类装饰,布局紧凑、年味十足,适合放在侧边栏首屏位置。
-
红金节日卡片:深红渐变背景配金色描边与顶部彩带条,一眼就是新年配色。
-
实时倒计时:天、时、分、秒四格半透明圆角单元,数字清晰、每秒自动刷新。
-
卡片内飘雪:雪花只在卡片范围内轻轻飘落,不影响正文阅读。
-
两角小宫灯:卡片左右上角各挂一盏红金小宫灯,微微摆动,增加年味。
-
双行祝福语:标题下方和底部各有一句新年祝福,可自由改写。
03 安装方法:放进侧边栏自定义HTML小工具
安装这套博客侧边栏装饰代码非常快捷,三步即可完成,适用于 WordPress、Typecho、Hexo 等支持小工具的博客系统。
-
复制完整代码:复制本文「完整代码」一节的全部内容。
-
添加自定义HTML小工具:进入博客后台「外观 → 小工具」,把「自定义 HTML」小工具拖到侧边栏区域(WordPress 操作路径即此;Typecho 可在主题小工具或侧边栏模板中插入,Hexo 可在侧边栏 partial 中放置)。
-
粘贴并保存:把代码整段粘贴进小工具的 HTML 输入框,保存后刷新页面即可看到倒计时卡片。
04 配置说明:改标题、祝福语和开关
代码中的 NW 配置对象集中了全部可改项,方便你做侧边栏小工具个性化定制。
|
配置项
|
默认值
|
作用说明
|
|---|---|---|
|
title
|
元旦快乐
|
卡片主标题
|
|
sub
|
愿新的一年 · 万事胜意
|
标题下的副标题
|
|
wish
|
岁岁常欢愉 · 年年皆胜意
|
主祝福语
|
|
foot
|
所求皆如愿 · 所行化坦途
|
底部祝福语
|
|
snow
|
true
|
卡片内飘雪开关
|
|
countdown
|
true
|
新年倒计时开关
|
如果想调整卡片配色、宫灯大小或倒计时单元格样式,直接修改对应 CSS 区块即可,所有样式都放在 #nyw-card 作用域下,改起来安全不会影响其他区域。
05 完整代码:直接复制使用
[scp_copycode lang="php"]<!-- ==================== 元旦侧边栏小工具 v1.0 · 放入侧边栏自定义HTML小工具即生效 ==================== -->
<!-- 使用前可修改下方 script 标签顶部的 NW_CONFIG 配置(文字、颜色、各效果开关) -->
<style>
#nyw-card{
position:relative; overflow:hidden; box-sizing:border-box; width:100%;
background:linear-gradient(165deg,#c0392b 0%,#8e1910 55%,#6f130b 100%);
border:2px solid #e7b74c; border-radius:14px; color:#fff;
font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;
padding:16px 14px 18px; text-align:center; box-shadow:0 8px 24px rgba(110,16,8,.35);
}
/* 顶部红金拉花条 */
#nyw-card .nyw-festoon{position:absolute; top:0; left:0; right:0; height:7px;
background:repeating-linear-gradient(90deg,#e7b74c 0 18px,#c0392b 18px 24px); opacity:.9}
/* 卡片内飘雪 */
#nyw-card .nyw-snow{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2}
/* 两角小宫灯 */
#nyw-card .nyw-lantern{position:absolute; top:14px; z-index:3; width:22px; height:44px; pointer-events:none}
#nyw-card .nyw-lantern-l{left:12px; transform-origin:top center; animation:nyw-swing 3.4s ease-in-out infinite}
#nyw-card .nyw-lantern-r{right:12px; transform-origin:top center; animation:nyw-swing 3.4s ease-in-out 1.7s infinite}
#nyw-card .nyw-lantern::before{ /* 挂绳 */
content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
width:2px; height:10px; background:#7a4a12; border-radius:2px}
#nyw-card .nyw-lantern::after{ /* 灯体 */
content:""; position:absolute; top:9px; left:50%; transform:translateX(-50%);
width:18px; height:22px; border-radius:50%;
background:radial-gradient(circle at 38% 32%, #f7d06a, #e74c3c 55%, #a5281b);
box-shadow:inset -3px -4px 8px rgba(120,20,10,.45)}
#nyw-card .nyw-lantern .nyw-ts{position:absolute; top:31px; left:50%; transform:translateX(-50%);
width:2px; height:9px; background:#f1c40f}
@keyframes nyw-swing{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}
/* 标题 */
#nyw-card .nyw-title{position:relative; z-index:3; font-size:19px; font-weight:800; letter-spacing:2px;
margin:2px 0 2px; text-shadow:0 2px 6px rgba(0,0,0,.35)}
#nyw-card .nyw-sub{position:relative; z-index:3; font-size:11px; opacity:.92; letter-spacing:1px; margin-bottom:12px}
/* 倒计时 */
#nyw-card .nyw-cd{position:relative; z-index:3; display:flex; justify-content:center; gap:7px; margin:6px 0 12px}
#nyw-card .nyw-cell{background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.25);
border-radius:9px; padding:7px 0 5px; min-width:52px}
#nyw-card .nyw-cell b{display:block; font-size:21px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.1}
#nyw-card .nyw-cell span{font-size:10px; opacity:.88; letter-spacing:1px}
#nyw-card .nyw-wish{position:relative; z-index:3; font-size:13px; font-weight:600; letter-spacing:1px;
color:#ffe9a8; text-shadow:0 1px 3px rgba(0,0,0,.3)}
#nyw-card .nyw-foot{position:relative; z-index:3; font-size:11px; opacity:.85; margin-top:6px}
/* 移动端(侧边栏全宽时) */
@media (max-width:560px){
#nyw-card{padding:14px 12px 16px}
#nyw-card .nyw-cell{min-width:48px}
}
</style>
<div id="nyw-card">
<div class="nyw-festoon"></div>
<canvas class="nyw-snow" id="nyw-snow-cv"></canvas>
<div class="nyw-lantern nyw-lantern-l"><span class="nyw-ts"></span></div>
<div class="nyw-lantern nyw-lantern-r"><span class="nyw-ts"></span></div>
<div class="nyw-title">元旦快乐</div>
<div class="nyw-sub">愿新的一年 · 万事胜意</div>
<div class="nyw-cd">
<div class="nyw-cell"><b id="nyw-d">00</b><span>天</span></div>
<div class="nyw-cell"><b id="nyw-h">00</b><span>时</span></div>
<div class="nyw-cell"><b id="nyw-m">00</b><span>分</span></div>
<div class="nyw-cell"><b id="nyw-s">00</b><span>秒</span></div>
</div>
<div class="nyw-wish">岁岁常欢愉 · 年年皆胜意</div>
<div class="nyw-foot">所求皆如愿 · 所行化坦途</div>
</div>
<script>
(function(){
/* ====== 配置区:按需修改 ====== */
var NW = {
title: '元旦快乐', // 主标题
sub: '愿新的一年 · 万事胜意', // 副标题
wish: '岁岁常欢愉 · 年年皆胜意', // 祝福语
foot: '所求皆如愿 · 所行化坦途', // 底部祝福
snow: true, // 卡片内飘雪
countdown: true // 倒计时(自动算到下一个1月1日00:00)
};
var card=document.getElementById('nyw-card');
if(!card) return;
if(NW.title) card.querySelector('.nyw-title').textContent=NW.title;
if(NW.sub) card.querySelector('.nyw-sub').textContent=NW.sub;
if(NW.wish) card.querySelector('.nyw-wish').textContent=NW.wish;
if(NW.foot) card.querySelector('.nyw-foot').textContent=NW.foot;
/* 倒计时 */
if(NW.countdown){
var dEl=document.getElementById('nyw-d'),hEl=document.getElementById('nyw-h'),
mEl=document.getElementById('nyw-m'),sEl=document.getElementById('nyw-s');
var target=new Date(new Date().getFullYear()+1,0,1,0,0,0);
function pad(n){return (n<10?'0':'')+n}
function tick(){
var diff=target.getTime()-Date.now();
if(diff<0){ target=new Date(target.getFullYear()+1,0,1,0,0,0); diff=target.getTime()-Date.now(); }
dEl.textContent=pad(Math.floor(diff/86400000));
hEl.textContent=pad(Math.floor(diff%86400000/3600000));
mEl.textContent=pad(Math.floor(diff%3600000/60000));
sEl.textContent=pad(Math.floor(diff%60000/1000));
}
tick(); setInterval(tick,1000);
}
/* 卡片内飘雪 */
if(NW.snow && !window.matchMedia('(prefers-reduced-motion:reduce)').matches){
var cv=document.getElementById('nyw-snow-cv');
var ctx=cv.getContext('2d');
var fl=[]; var W,H;
function size(){ W=cv.width=card.clientWidth; H=cv.height=card.clientHeight; }
size(); window.addEventListener('resize',size);
for(var i=0;i<22;i++){
fl.push({x:Math.random()*W, y:Math.random()*H, r:Math.random()*2+0.8, sp:Math.random()*0.7+0.2, ph:Math.random()*6.28, o:Math.random()*0.4+0.35});
}
function draw(){
ctx.clearRect(0,0,W,H);
for(var i=0;i<fl.length;i++){
var f=fl[i];
f.y+=f.sp; f.x+=Math.sin(Date.now()/500+f.ph)*0.4;
if(f.y>H+4){ f.y=-4; f.x=Math.random()*W; }
ctx.beginPath(); ctx.arc(f.x,f.y,f.r,0,6.283);
ctx.fillStyle='rgba(255,255,255,'+f.o+')'; ctx.fill();
}
if(document.getElementById('nyw-card')) requestAnimationFrame(draw);
}
draw();
}
})();
</script>
<!-- ==================== 元旦侧边栏小工具 结束 ==================== -->[/scp_copycode]06 常见问题(FAQ)
1. 我的博客没有「自定义HTML」小工具怎么办?
多数支持小工具的博客系统都内置了「自定义 HTML / 自定义代码」小工具。如果找不到,可以把这段代码粘贴到主题侧边栏模板(如 sidebar.php)中对应的位置,效果相同。
2. 倒计时时间准吗?
准。代码使用访问者浏览器本地时间,自动计算并实时刷新到下一个 1 月 1 日零点,无需手动设置年份,跨年后会自动更新到下一个新年。
3. 会影响博客的加载速度吗?
不会。卡片是纯 CSS 和原生 JS 实现,无任何外部依赖,飘雪与倒计时都由轻量 Canvas 驱动,对性能影响可忽略。
4. 可以只保留倒计时、去掉飘雪吗?
可以。把 NW 配置中的 snow 改为 false 即可关闭飘雪;想隐藏宫灯或彩带条,只需在对应 CSS 里做调整,非常灵活。
5. 移动端显示会不会变形?
不会。代码内置响应式适配,卡片宽度自适应,手机端侧边栏变全宽时倒计时单元格会自动缩小,布局保持完整。
文章标签(Tags):元旦装饰代码、博客侧边栏、自定义HTML小工具、新年倒计时、博客美化、网页特效
核心关键词(Keywords):博客侧边栏装饰、自定义HTML小工具代码、新年倒计时代码、博客元旦装饰、侧边栏节日卡片
长尾关键词(Long-tail):博客侧边栏添加元旦倒计时、自定义HTML小工具装饰代码、博客新年倒计时卡片代码、侧边栏节日装饰HTML、博客元旦祝福小工具代码
原创文章,如若转载,请注明出处:维形筑网https://wxzcw.com/%e5%8d%9a%e5%ae%a2%e4%be%a7%e8%be%b9%e6%a0%8f%e5%85%83%e6%97%a6%e8%a3%85%e9%a5%b0%e4%bb%a3%e7%a0%81%ef%bc%9a%e8%87%aa%e5%ae%9a%e4%b9%89html%e5%b0%8f%e5%b7%a5%e5%85%b7%e5%ae%9e%e7%8e%b0%e6%96%b0/