更新

22-09-02:新增排序数组,可以自定义显示顺序,且控制元素显隐更方便。

22-08-23:@Heo更改了他的关于页面,对51la也进行了美化,于是小小的模仿一下。

前言

逛洪哥博客的时候看到了这个关于51la统计的文章,觉得还不错于是也跟着弄了一下。
但是在弄前端统计的时候,发现自带的样式实在太简单,写css覆盖的话还很麻烦,夜间模式看的话很突兀。
所以我就稍微改了一下,只要它的数据,样式全由自己来写。

洪哥原文:51la统计体验报告:很全面的惊喜,Butterfly适配51la统计

添加代码

因为我把统计放在了关于页面,所以就直接把js写在了关于页面 里面,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
### 访问统计
<div id="statistic">
<div class="content"></div>
<span style="font-size:14px">流量统计支持:<a style="color:#1690ff;" href="https://v6.51.la/">51la</a></span>
</div>

<!-- js -->
<script>
// 链接替换即可,不需要后面的参数
fetch('https://v6-widget.51.la/v6/JkxJmzzWDhbGjOFf/quote.js').then(res => res.text()).then((data) => {
let title = ['最近活跃访客', '今日人数', '今日访问', '昨日人数', '昨日访问', '本月访问', '总访问量']
let num = data.match(/(?<=<\/span><span>).*?(?=<\/span><\/p>)/g)
let order = [1, 3, 2, 4, 5] // 新增 可排序,如果需要隐藏则删除对应数字即可。
// 示例:[1, 3, 2, 4, 5] 显示 ['今日人数', '昨日人数', '今日访问', '昨日访问', '本月访问'],不显示 最近活跃访客(0) 和 总访问量(6)
for (let i = 0; i < order.length; i++) { document.querySelectorAll('#statistic .content')[0].innerHTML += '<div><span>' + title[order[i]] + '</span><span class="num">' + num[order[i]] + '</span></div>' }
});
</script>

CSS

因为我主要是为了适配背景和字体,所以就写的比较简单,你可以再自己写。
css文件创建和引入不会的参考:Hexo 博客添加自定义 css 和 js 文件

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
#statistic {
font-size: 18px;
padding: 20px;
border-radius: 12px;
width: 100%;
color: var(--font-color);
background-color: var(--card-bg);
}

div#statistic .content {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

div#statistic a {
text-decoration: none;
}

#statistic .content div {
display: inline-block;
}

#statistic div span {
font-size: 14px;
line-height: 1.3;
display: block;
}

#statistic div .num {
letter-spacing: 1px;
font-weight: bold;
font-size: 2rem;
margin-bottom: .8rem;
white-space: nowrap;
}