点击查看更新记录
更新记录
2021-01-20:内测版v0.05
点击查看参考教程
参考方向 | 教程原贴 |
---|---|
秋主题banner | CodePen-BiliBili Autumn Banner |
冬主题banner | CodePen-BiliBili Winter Banner |
由于本教程涉及的所有修改对缩进格式等有严格要求,担心自己控制不好的可以直接下载静态资源。参照教程进行修改。本帖基于Butterfly_v3.5.1版本进行配置,低版本可能需要对index.pug稍加修改。精力有限没时间做全版本适配。读者如果有困难可以考虑群内交流或者直接升级最新版本主题。
预览效果
新建
if (!is_home())
- var banner_style = (typeof(page.bilibili_banner) != "undefined" && page.bilibili_banner!=null) ? page.bilibili_banner : theme.bilibili_banner.style
if (banner_style === 'autumn')
#autumnBanner
div
img(src='/bilibiliBanner/autumn/bilibili-autumn-1.png')
div
img(src='/bilibiliBanner/autumn/bilibili-autumn-2.png')
div
img(src='/bilibiliBanner/autumn/bilibili-autumn-3.png')
div
img(src='/bilibiliBanner/autumn/bilibili-autumn-4.png')
div
img(src='/bilibiliBanner/autumn/bilibili-autumn-5.png')
div
img(src='/bilibiliBanner/autumn/bilibili-autumn-6.png')
else if (banner_style === 'winter')
#winterBanner
.view
img.morning(src='/bilibiliBanner/winter/bilibili-winter-view-1.png' alt='')
img.afternoon(src='/bilibiliBanner/winter/bilibili-winter-view-2.png' alt='')
video.evening(autoplay='' loop='' muted='')
source(src='/bilibiliBanner/winter/bilibili-winter-view-3.webm' type='video/webm')
img.window-cover(src='/bilibiliBanner/winter/bilibili-winter-view-3-snow.png' alt='')
.tree
img.morning(src='/bilibiliBanner/winter/bilibili-winter-tree-1.png' alt='')
img.afternoon(src='/bilibiliBanner/winter/bilibili-winter-tree-2.png' alt='')
img.evening(src='/bilibiliBanner/winter/bilibili-winter-tree-3.png' alt='')
script(async data-pjax src=url_for(theme.CDN.bilibili_banner))
新建,
新建
//autumn_banner
var autumnBanner = document.querySelector('#autumnBanner')
if (autumnBanner) {
var images = document.querySelectorAll('#autumnBanner > div > img')
autumnBanner.addEventListener('mousemove', (e) => {
let percentage = e.clientX / window.outerWidth
let offset = 10 * percentage
let blur = 20
for (let [index, image] of images.entries()) {
offset *= 1.3
let blurValue = (Math.pow((index / images.length - percentage), 2) * blur)
image.style.setProperty('--offset', `${offset}px`)
image.style.setProperty('--blur', `${blurValue}px`)
}
})
}
//winter_banner
var winterBanner = document.querySelector('#winterBanner')
if (winterBanner) {
var startingPoint
winterBanner.addEventListener('mouseenter', (e) => {
startingPoint = e.clientX
winterBanner.classList.add('moving')
})
winterBanner.addEventListener('mouseout', (e) => {
winterBanner.classList.remove('moving')
winterBanner.style.setProperty('--percentage', 0.5)
})
winterBanner.addEventListener('mousemove', (e) => {
let percentage = (e.clientX - startingPoint) / window.outerWidth + 0.5
winterBanner.style.setProperty('--percentage', percentage)
})
}
将静态资源文件夹内的图片文件夹放到目录下。
修改,注入组件
在站点配置文件中添加配置项,打开,
除了在主题配置文件通过配置的默认项,还可以在每个页面的文件中通过控制单页配置。提供了:
配置B站同款样式动态banner
适配pjax
提供秋冬两套主题方案
通过主题配置文件全站配置
通过设置页面Front-matter实现单页配置
春夏两款坐等小破站发资源