在hexo+Icarus4.x搭建的博客上添加3D飘雪效果

技术指南

2022-08-13

7.9k 7 min ... / ...

今天由于全站大美化升级,我便想着添加一个飘雪效果(虽然现在是夏天)。不过网上大部分的文章中提供的下雪绘制算法都较为简单粗糙,效果不甚美观,也缺乏针对icarus主题的安装方法(这个主题真是挺小众的……)。在找到一个很漂亮的飘雪算法后,看到安装指南只提供了html源码,没有半点相关知识的我本来是果断选择放弃的,但是我没有死心,连蒙带猜地试了几下之后竟然成功了!我都佩服我自己……不过这也是多亏了我之前各种瞎折腾的经历。

本文就记录一下在hexo+Icarus4.x搭建的博客上添加3D飘雪效果的步骤,方便其他与我状况类似的人的使用。

下载资源

请见这里

注:资源不保证一直有效

资源正常,则会得到名为snow.js的文件。

此外,还会有如下代码,可以一并复制(此代码有些小问题,建议直接使用后文里提供的):

<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="snow.js"></script>
<style type="text/css">
.snow-container{
position:fixed;
top:0;left:0;
width:100%;
height:100%;
pointer-events:none;
z-index:100001;
}
</style>
<div class="snow-container"></div>

部署代码

  1. 将“snow.js”放入“source/js/”文件夹(根路径为博客根目录+”/themes/icarus/“,下同)。

  2. 在“layout/”文件夹中找到“layout.jsx”文件,在body标签内(即“</body>”之前)加入如下代码:

    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript" src="/js/snow.js"></script>
    <div class="snow-container"></div>

    当然如果文件中已经引用过JQuery的,前两行可以不用加。

  3. 在“source/css/”文件夹中新建一个“custom.styl”文件,在其中写入如下代码:

    .snow-container {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        z-index: 100001;
    }

    注:关于custom.styl的更多神奇用法,可以参考这篇教程

  4. 在“source/css/”文件夹中找到“style.styl”文件,在最后一行加入下列代码:

    @import './custom'

    其功能是引入刚刚新建的“custom.styl”。

  5. 大功告成!在根目录进入git bash,使用下列代码查看效果:

    hexo g
    hexo s

    正常的话就可以部署了!

结语

博客美化毕竟是锦上添花,有人喜欢花里胡哨,有人喜欢极简。Icarus主题其实是走极简风的,不过在我的魔改下变得逐渐生动起来。但是博客到底重在内容,创作第一,美化其次。