首先祝各位朋友元旦快乐,距离上次更新差不多十天前了,有小伙伴问我这段时间在干嘛

简单给大家聊一下,差不多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);

即可,是不是非常简单,咱们看看具体的效果

晚安,我的朋友们