本文介绍了在Next主题的基础上进一步对博客进行美化的方案,主要包括:
- 在文章末尾添加结束标记
- 修改侧边栏的位置到左边
- 添加不同类型的动态背景效果
- 添加 live2d 看板娘
- 为布局元素添加边缘弹性摆动效果
- 个性化回到顶部按钮
- 添加不同类型的鼠标点击特效
- 评论区输入打字礼花特效
读者可以根据需要选择其中喜欢的方案应用到站点博客中。
修改博客字体
在 Google Fonts 上找到心仪的字体,然后在主题配置文件中为不同的应用场景配置字体:
1 | font: |
文章页末美化
为标签添加图标
默认情况下标签前缀是 #
字符,用户可以通过修改主题源码将标签的字符前缀改为图标前缀,更改后效果如下:
在文章布局模板中找到文末标签相关代码段,将 #
换成 <i class="fa fa-tags"></i>
即可:
1 | <footer class="post-footer"> |
Next中使用 FontAwesome 作为图标库,用户可以在 FontAwesome 上找到心仪的图标来替换标签的字符前缀。
添加结束标记
在文末添加结束标记,效果如下:
新建布局模板文件 post-end-tag.swig,添加如下代码:
1 | <div> |
在文章布局模板中添加如下代码:
1 | {#####################} |
在站点配置文件末尾添加如下代码:
1 | post_end_tag: |
重启服务器后即可在文末看到结束标记。
页面加载进度条
当网络不好的时候可能会在打开站点或跳转文章时出现短暂的白屏,此时如果能有加载进度提示将会提高用户操作体验。
在根目录下执行以下命令安装相关依赖:
1 | $ git clone https://github.com/theme-next/theme-next-pace themes/next/source/lib/pace |
在主题配置文件中设置 pace: true
。
默认提供了多种主题的进度条加载样式,有顶部提示的,有中间提示的,还有全页面遮挡提示的,个人认为默认的进度条效果就恰如其当,既能够在页面空白的时候起到加载作用,也不会因为太过花里胡哨而喧宾夺主,尤其是当你如果使用了不蒜子的站点访问统计的功能的时候,常常会遇到所有资源都加载完毕而不蒜子还在等待响应,如果这个时候在页面较显眼的位置出现一个停滞不前的进度条,很让人抓狂。
侧边栏放左边
受 猪猪侠的博客 所启发,萌生了想把主题侧边栏放在左侧的想法。
Next主题各系列中只有Pisces和Gemini支持通过主题配置文件来将侧边栏置于左侧或右侧,而Muse和Mist则需要深度修改源码才能实现改变侧边栏位置。
在自定义样式文件中添加如下规则:
1 | .sidebar-toggle { |
修改动效脚本代码:
1 | $(document) |
如此以来就可以将侧边栏放置在左边了,但当窗口宽度缩小到991px之后会出现样式错误:侧边栏收缩消失但是页面左侧仍留有空白间距,此时修改如下代码即可:
1 | body { |
添加动态背景
Next主题可以通过安装插件快速为站点添加不同效果的动态背景。
粒子漂浮聚合
应用效果如下图:
该功能由 theme-next-canvas-nest 插件提供,在根目录下执行如下命令:
1 | $ git clone https://github.com/theme-next/theme-next-canvas-nest themes/next/source/lib/canvas-nest |
然后在主题配置文件中设置 canvas_nest: true
即可。
Next v6.5.0 及以上版本支持更多的自定义选项:
1 | canvas_nest: |
Three 三维动效
theme-next-three 插件提供了三个类型的背景动效,应用效果如下:
在根目录下执行如下命令安装相关依赖:
1 | $ git clone https://github.com/theme-next/theme-next-three themes/next/source/lib/three |
然后在主题配置文件中设置开启对应的动效选项即可。
1 | # JavaScript 3D library. |
个人认为在站点中添加动态背景并没有实际的意义,只会凭空增加页面内存占用及CPU消耗,所以本站没有添加任何动态背景。
随机三角丝带
点击下方按钮下载相应的脚本,并置于 themes\next\source\js\ 目录下:
在主题自定义布局文件中添加以下代码:
1 | {# 随机三角丝带背景 #} |
如果 custom.swig 文件不存在,需要手动新建并在布局页面中 body 末尾引入:
1 | ... |
在主题配置文件中添加以下代码:
1 | # colorful trilateral riband background |
如果从本地加载JS脚本速度较慢,可以考虑将脚本放到CDN上再引入。
添加看板娘
本章节部分内容参考 FJKang | 添加一个萌物
该功能由 hexo-helper-live2d 插件支持,效果如下图:
在站点根目录下执行以下命令安装依赖:
1 | $ npm install --save hexo-helper-live2d |
在站点配置文件中添加以下下配置项
1 | # Live2D |
更多配置参数请查看 L2Dwidget | live2d-widget.js
此时重启服务器暂时还看不到看板娘,需要手动下载或安装模型资源。可以从 hexo live2d 模型预览 里找到你喜欢的角色,然后根据 live2d-widget-models 中提供的方法来下载模型数据.
例如通过以下命令下载模型 shizuku:
1 | $ npm install live2d-widget-model-shizuku |
因为修改了站点配置文件,所以需要重启服务器才能预览模型效果。
如果设置了 live2d.tagMode: true
,则可以在指定页面中插入以下标签:
1 | {{ live2d() }} |
只有拥有该标签的页面才会渲染live2d模型,这样以来就可以精确控制在哪些页面上显示看板娘了。
如果只想在一级菜单页面上显示看板娘,可以在Header模板中添加以下代码:
1 | + {% if is_index %} |
个人认为在文章内出现看板娘将会影响读者注意力的集中,毕竟一篇博客里最重要的是内容,而不是这些花里胡哨转移注意力的东西。所以本站只在一级菜单页面添加了看板娘,文章页面则保持极致精简的阅读体验。
经过测试发现 live2d.mobile.show: false
并没有生效,暂时没有找到好的解决方法,参考 EYHN/hexo-helper-live2d Issues #12 后发现可以在自定义样式文件中添加以下代码来解决:
1 | #live2dcanvas { |
不要乱点不该点的地方,会生气的。
边缘摆动效果
在 猪猪侠的博客 里发现的这种特效,觉得挺有意思的,就从他Github上给扒过来了
点击下方按钮下载脚本,并置于 themes\next\source\js\ 目录下:
在主题自定义布局文件中添加以下代码:
1 | {# wobble窗口摆动特效 #} |
如果 custom.swig 文件不存在,需要手动新建并在布局页面中 body 末尾引入:
1 | ... |
在自定义样式文件中添加以下样式:
1 | //窗口波动效果相关样式 |
Next.Muse主题方案中Header和Footer是没有背景色的,所以需要添加背景色后才能看出边缘摆动效果。另外,实现边缘摆动效果所需的 z-index
属性可能会导致元素堆叠异常,需要添加以上样式来矫正。
在主题配置文件中添加以下代码:
1 | # window woblle |
用户可以根据需要在配置文件中为选择开启边缘摆动效果的布局元素。刷新浏览器,然后将鼠标移动到布局边缘上尽情的挑逗它吧。
如果从本地加载JS脚本速度较慢,可以考虑将脚本放到CDN上再引入。
个性化回到顶部
从 DIYgod的博客 里扒来的,效果如下:
原理很简单,将 back-to-top 按钮添加图片背景,并添加CSS3动效即可。
首先,找到自己喜欢的图片素材放到 source\images\ 目录下。
你可以点击下方按钮下载本站所使用的小猫上吊素材( 小猫咪这么可爱,当然要多放点孜然啦…)
然后在自定义样式文件中添加如下代码:
1 | //自定义回到顶部样式 |
刷新浏览器即可预览效果。
鼠标点击特效
从各个站点里搜罗了以下四个比较常用的鼠标点击特效:
点击下方按钮下载相应的脚本,并置于 themes\next\source\js\cursor\ 目录下:
在主题自定义布局文件中添加以下代码:
1 | {# 鼠标点击特效 #} |
如果 custom.swig 文件不存在,需要手动新建并在布局页面中 body 末尾引入:
1 | ... |
在主题配置文件中添加以下代码:
1 | # mouse click effect: fireworks | explosion | love | text |
这样即可在配置文件中一键快速切换鼠标点击特效。
如果从本地加载JS脚本速度较慢,可以考虑将脚本放到CDN上再引入。
打字特效
点击下方按钮下载相应的脚本,并置于 themes\next\source\js\ 目录下:
在主题自定义布局文件中添加以下代码:
1 | {# 打字特效 #} |
如果 custom.swig 文件不存在,需要手动新建并在布局页面中 body 末尾引入:
1 | ... |
在主题配置文件中添加以下代码:
1 | # typing effect |
如果从本地加载JS脚本速度较慢,可以考虑将脚本放到CDN上再引入。
结束语
本文记录了本站在Next的基础上的进阶美化方案,除了一些简单的样式修改外,还添加了一些由插件支持的高级动效,包括动态背景、看板娘、边缘摆动、鼠标点击和打字特效等。笔者认为,动效可以使得站点变有趣,但同时也会增加网页的资源消耗,以及影响用户的关注点,有时候会喧宾夺主适得其反,建议珍爱PC资源,合理使用动效。
本文内容仅涉及到主题美化,也就是说仅使得网页看起来更好看或者更炫酷,但并没有使其功能上变得更强大。如果你希望为站点集成更高级的功能,可以关注本系列的后续文章:
- 想要深度定制个性化站点,请参考本系列中的 Hexo搭建个人博客系列:进阶设置篇。
- 想要了解如何将站点部署到公网,请参考本系列中的 Hexo搭建个人博客系列:部署上线篇