本文简要介绍如何在Hexo博客的Butterfly主题中,为每篇文章顶部添加一个动态波浪效果。
效果图:

教程开始
修改主题目录文件:/themes/butterfly/layout/includes/header/index.pug
找到以下代码:
1 2 3
| header#page-header(class=`${headerClassName + isFixedClass}` style=bg_img) include ./nav.pug if top_img !== false
|
在代码后面添加代码(添加时删除+号)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| header#page-header(class=`${headerClassName + isFixedClass}` style=bg_img) include ./nav.pug if top_img !== false + section.main-hero-waves-area.waves-area + svg.waves-svg(xmlns='http://www.w3.org/2000/svg', xlink='http://www.w3.org/1999/xlink', viewBox='0 24 150 28', preserveAspectRatio='none', shape-rendering='auto') + defs + path#gentle-wave(d='M -160 44 c 30 0 58 -18 88 -18 s 58 18 88 18 s 58 -18 88 -18 s 58 18 88 18 v 44 h -352 Z') + g.parallax + use(href='#gentle-wave', x='48', y='0') + use(href='#gentle-wave', x='48', y='3') + use(href='#gentle-wave', x='48', y='5') + use(href='#gentle-wave', x='48', y='7') if globalPageType include ./post-info.pug
|
在/source/css文件夹中创建wave.css文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
.parallax > use { animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite; } .parallax > use:nth-child(1) { animation-delay: -2s; animation-duration: 7s; fill: #ffffffbd; } .parallax > use:nth-child(2) { animation-delay: -3s; animation-duration: 10s; fill: #ffffff82; } .parallax > use:nth-child(3) { animation-delay: -4s; animation-duration: 13s; fill: #ffffff36; } .parallax > use:nth-child(4) { animation-delay: -5s; animation-duration: 20s; fill: #ffffff; }
[data-theme="dark"] .parallax > use:nth-child(1) { animation-delay: -2s; animation-duration: 7s; fill: #18171dc8; } [data-theme="dark"] .parallax > use:nth-child(2) { animation-delay: -3s; animation-duration: 10s; fill: #18171d80; } [data-theme="dark"] .parallax > use:nth-child(3) { animation-delay: -4s; animation-duration: 13s; fill: #18171d3e; } [data-theme="dark"] .parallax > use:nth-child(4) { animation-delay: -5s; animation-duration: 20s; fill: #0d0d10; }
@keyframes move-forever { 0% { transform: translate3d(-90px, 0, 0); } 100% { transform: translate3d(85px, 0, 0); } }
@media (max-width: 768px) { .waves-svg { height: 40px; min-height: 40px; } }
.waves-svg { position: absolute; bottom: 0; left: 0; width: 100%; overflow: hidden; line-height: 0; height: 40px; min-height: 40px; }
|
然后在_config.butterfly.yml配置文件中的 [inject.head] 或者自定义 css 中 引入以下 css
1 2 3
| inject: head: - <link rel="stylesheet" href="/css/wave.css">
|