首先祝各位朋友元旦快乐,距离上次更新差不多十天前了,有小伙伴问我这段时间在干嘛
简单给大家聊一下,差不多25号我就放寒假了,放假回家一直在老家,大部分时间帮父母干农活
虽然很累,但也有它的趣味,不得不说,抛开手机电脑,静下心来享受田园生活,不由让人沉浸
昨天也在逛博友的博客,大部分博主都码出了自己的2021年的年度总结,总结一年的得与失
离春节还有差不多一个月的时间,对于我来说,现在把年度总结码出来还是为时过早
逛了大多数博友,博客都挂起了象征新年的灯笼,给博客加了点年味,心想自己也整一个
打开搜索引擎,搜索了一下相关代码,基本上都是来自于各大资源网,有的居然还是收费
大概谷歌浏览器搜了一下,还是如愿以偿找到了代码,但是代码不太精简,我删除了一些不必要的代码
终究还是实现了,这里简单讲一下方法以及实现原理,首先就是怼几个div标签,进行骨架构成
这边建议找到自己的主题模版的footer.php,在适当位置加入下面这些代码
<div id="usj">
<div class="deng-box2">
<div class="deng">
<div class="xian">
</div>
<div class="deng-a">
<div class="deng-b">
<div class="deng-t">年</div>
</div>
</div>
<div class="shui shui-a">
<div class="shui-c">
</div>
<div class="shui-b"></div>
</div>
</div>
</div>
<div class="deng-box3">
<div class="deng">
<div class="xian">
</div>
<div class="deng-a">
<div class="deng-b">
<div class="deng-t">新</div>
</div>
</div>
<div class="shui shui-a">
<div class="shui-c"></div>
<div class="shui-b">
</div>
</div>
</div>
</div>
<div class="deng-box1">
<div class="deng">
<div class="xian">
</div>
<div class="deng-a">
<div class="deng-b">
<div class="deng-t">乐</div>
</div>
</div>
<div class="shui shui-a">
<div class="shui-c"></div>
<div class="shui-b"></div>
</div>
</div>
</div>
<div class="deng-box">
<div class="deng">
<div class="xian">
</div>
<div class="deng-a">
<div class="deng-b">
<div class="deng-t">快</div>
</div>
</div>
<div class="shui shui-a">
<div class="shui-c">
</div>
<div class="shui-b"></div>
</div>
</div>
</div>
</div>
接着就是怼css,分别为四个灯笼,输出新年快乐四个字,分别给他们设为deng-box,deng-box2,deng-box3,deng-box4,当然每个博客模版都是需要自己对deng-box的top和left值进行适当调整,你也可以参考以下css代码
.deng-box {
position: fixed;
top: -30px;
right: 35px;
z-index: 9999;
pointer-events: none;
}
.deng-box1 {
position: fixed;
top: -30px;
right: -41px;
z-index: 9999;
pointer-events: none
}
.deng-box2 {
position: fixed;
top: -30px;
left: 40px;
z-index: 9999;
pointer-events: none
}
.deng-box3 {
position: fixed;
top: -30px;
left: -20px;
z-index: 9999;
pointer-events: none
}
.deng-box1 .deng,
.deng-box3 .deng {
position: relative;
width: 120px;
height: 90px;
margin: 50px;
background: #d8000f;
background: rgba(216, 0, 15, .8);
border-radius: 50% 50%;
-webkit-transform-origin: 50% -100px;
-webkit-animation: swing 5s infinite ease-in-out;
box-shadow: -5px 5px 30px 4px #fc903d
}
.deng {
position: relative;
width: 120px;
height: 90px;
margin: 50px;
background: #d8000f;
background: rgba(216, 0, 15, .8);
border-radius: 50% 50%;
-webkit-transform-origin: 50% -100px;
-webkit-animation: swing 3s infinite ease-in-out;
box-shadow: -5px 5px 50px 4px #fa6c00
}
.deng-a {
width: 100px;
height: 90px;
background: #d8000f;
background: rgba(216, 0, 15, .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, .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 4s infinite ease-in-out;
-webkit-transform-origin: 50% -45px;
background: orange;
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: orange;
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: orange;
background: linear-gradient(to right, #dc8f03, orange, #dc8f03, orange, #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: orange;
background: linear-gradient(to right, #dc8f03, orange, #dc8f03, orange, #dc8f03)
}
.deng-t {
font-family: 黑体, Arial, Lucida Grande, Tahoma, sans-serif;
font-size: 3.2rem;
color: #dc8f03;
font-weight: 700;
line-height: 85px;
text-align: center
}
.night .deng-box,
.night .deng-box1,
.night .deng-t {
background: 0 0 !important
}
@-moz-keyframes swing {
0% {
-moz-transform: rotate(-10deg)
}
50% {
-moz-transform: rotate(10deg)
}
100% {
-moz-transform: rotate(-10deg)
}
}
@-webkit-keyframes swing {
0% {
-webkit-transform: rotate(-10deg)
}
50% {
-webkit-transform: rotate(10deg)
}
100% {
-webkit-transform: rotate(-10deg)
}
}
然后适当调整就完成啦,好了,本文就到这里
!!!
作为一个爱整活的博主,不会满足就加几个灯笼就完了,打开网址输入自己的博客域名
发现自己的博客pc端布局两边十分的空旷,突然脑子里联想到我为什么不整个对联在两边
于是说干就干,去千图网找了素材,就开整,因为自己找合适且适用于对联的字体找了很久
肝了一个小时,不停的删删改改,终究还是把对联的样子整了出来
接下来就是肝代码,最近也在初步的对JavaScript学习,想着如果我全部用js写,还能检验一下自己最近学的怎么样
于是就开整,以下对联全都是用js写的,还是问了大三学长部分问题,不然自己还写不出来,在此特别谢谢学长
考虑到有的博客有很多侧栏,特别的考虑了对联遮挡问题,我还给对联加了关闭按钮,具体自己可以看看本站的效果
[reply]
<script>
lastScrollY = 0;
function heartBeat() {
var diffY;
if (document.documentElement && document.documentElement.scrollTop)
diffY = document.documentElement.scrollTop;
else if (document.body)
diffY = document.body.scrollTop
percent = .1 * (diffY - lastScrollY);
if (percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
document.getElementById("left").style.top = parseInt(document.getElementById("left").style.top) + percent + "px";
document.getElementById("right").style.top = parseInt(document.getElementById("right").style.top) + percent + "px";
lastScrollY = lastScrollY + percent;
}
function close_left2() {
left2.style.visibility = 'hidden';
}
function close_right2() {
right2.style.visibility = 'hidden';
}
document.writeln("<style type=\"text\/css\">");
document.writeln("#left,#right{position:absolute;}");
document.writeln(".imzql{width:100px;height:auto;line-height:5px}");
document.writeln("#left2 img{max-width: 100%;width: 70px;}");
document.writeln("#right2 img{max-width: 100%;width: 70px;}");
document.writeln("<\/style>");
document.writeln("<div id=\"left\" style=\"top:112px;left:50px\">");
document.writeln("<div id=\"left2\" class=\"imzql\">");
document.writeln("<img border=0 src=https://cdn.usj.cc/left.jpg>");
document.writeln("<br><a href=\"javascript:close_left2();\" title=\"关闭左边的对联\">×<\/a>");
document.writeln("<\/div>");
document.writeln("<\/div>");
document.writeln("<div id=\"right\" style=\"top:112px;right:50px\">");
document.writeln("<div id=\"right2\" class=\"imzql\">");
document.writeln("<img border=0 src=https://cdn.usj.cc/right.jpg>");
document.writeln("<br><a href=\"javascript:close_right2();\" title=\"关闭右边的对联\">×<\/a>");
document.writeln("<\/div>");
document.writeln("<\/div>");
</script>
[/reply]
这里需要注意需要把 https://cdn.usj.cc/xxx.jpg 下载下来,接着上传为自己的本地图片,因为这里图片使用的是自己的腾讯云文件托管,需要添加为referer白名单,否则直接引用会裂图
曾经被油老师嘲讽自己的思考问题不全面,每次整活都没考虑到移动端,所以这次对移动端也做了特别考虑,为了更好的去适应访客效果,我计划在低于1500分辨率的电子设备上不显示对联,否则在小屏幕的手机端,对联会显示出来遮挡对文章的正常浏览
当然控制方法也很简单,直接用css进行控制就好了,有一些设备的分辨率大概在1440,显示了就会影响侧栏的内容显示,当然我已经写了两个关闭按钮去控制,毕竟每次要去关闭两张图片会麻烦
@media (max-width:1500px){#left,#right{display:none !important}}
在主题的自定义css加入这个代码即可解决问题,灯笼的问题同理,直接在自定义cssjiaru
@media (max-width:1500px){#usj{display:none !important}}
这样效果基本上就弄好了,是不是很容易理解
后来学长建议对联跟随侧栏的拉条移动而移动会更好
这个比较简单直接在
document.writeln("<\/div>");
的下方加入
window.setInterval("heartBeat()",1);
即可,是不是非常简单,咱们看看具体的效果
晚安,我的朋友们