butterfly主题美化之背景毛玻璃效果
前言
我在进行butterfly主题美化的时候,发现隔壁redefine主题的毛玻璃效果非常好看,如果为了毛玻璃而抛弃butterfly奔向redefine,很多内容要重新配置。因此,我在ai 的帮助下,顺利给butterfly主题也加上了毛玻璃效果。
一、核心实现原理
初始状态:背景无模糊且透明
滚动触发:通过JavaScript监听滚动事件,超过设定阈值后添加模糊效果
视觉优化:使用backdrop-filter实现毛玻璃质感,配合透明度和过渡动画
二、操作步骤
1.按照butterfly教程文档预调整自己的背景和头图(已配好背景请忽视)
在config.yml
中,搜索:Website Background
,加上自己的背景。
1 | # Website Background |
接着搜索index_img
,将头图设置为透明,这时我们得到了不论如何滚动都始终保持不动的背景。
1 | # The banner image of index page |
可以发现,头图部分似乎有一层黑色透明遮罩,搜索mask
,将header和footer都改为false,即可去除遮罩。1
2
3
4# Add a mask to the header and footer
mask:
header: false
footer: false
在这三步以后,我们就得到了简单干净的图片背景。
2. 创建CSS样式文件
在主题的source/css/目录下新建bg_blur.css(文件名自选),添加以下代码:
1 | /* 创建毛玻璃覆盖层 */ |
通过backdrop-filter实现背景模糊,rgba颜色控制透明度,过渡动画时长设为0.5秒。
3. 添加JavaScript控制逻辑
在主题的source/js/目录下新建bg_blur.js(文件名自选),添加以下代码:
1 | window.addEventListener('scroll', function() { |
第二行
0.3
处为模糊的触发距离,可改到0.8
及以上以获得更好的效果。
4. 配置调整
在butterfly主题的配置config.yml(_config.butterfly.yml)
中,搜索Background effects
加入下面几行代码:
1 | background: url(/img/bg.jpg) # 你的背景图片路径 |
接着,还是在配置文件里面搜索inject
在heads
和bottom
后面分别加上1
2
3
4
5inject:
head:
- <link rel="stylesheet" href="/css/bg_blur.css">
bottom:
- <script src="/js/bg_blur.js"></script>
文件名记得对应刚刚新建的css和js文件名
总结
以上就是为butterfly主题添加背景随滚动启用毛玻璃效果的全部操作。