@mlikiowa/nanaeo 1.0.1702966759079 → 1.0.1702967739786
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/2022/08/04/NewBlog/index.html +3473 -0
- package/2022/08/13/GaussWave/index.html +3407 -0
- package/about/index.html +3236 -0
- package/archives/2022/08/index.html +3411 -0
- package/archives/2022/index.html +3411 -0
- package/archives/index.html +3308 -0
- package/asset/Sotheby.ttf +0 -0
- package/asset/backimg.png +0 -0
- package/atom.xml +171 -0
- package/categories/DevLog/index.html +3351 -0
- package/categories/SiteLog/index.html +3351 -0
- package/categories/index.html +3174 -0
- package/category/devlog/atom.xml +58 -0
- package/category/devlog/feed.json +19 -0
- package/category/devlog/rss.xml +62 -0
- package/category/sitelog/atom.xml +125 -0
- package/category/sitelog/feed.json +20 -0
- package/category/sitelog/rss.xml +129 -0
- package/content.json +1 -0
- package/css/Readme.html +9 -0
- package/css/first.css +1504 -0
- package/css/style.css +7106 -0
- package/favicon.ico +0 -0
- package/feed.json +31 -0
- package/friends/index.html +3661 -0
- package/index.html +3421 -0
- package/js/app.js +1223 -0
- package/js/plugins/aplayer.js +186 -0
- package/js/plugins/parallax.js +191 -0
- package/js/plugins/rightMenu.js +577 -0
- package/js/plugins/rightMenus.js +618 -0
- package/js/plugins/tags/contributors.js +92 -0
- package/js/plugins/tags/friends.js +93 -0
- package/js/plugins/tags/sites.js +96 -0
- package/js/search/hexo.js +192 -0
- package/package.json +1 -1
- package/rss.xml +175 -0
- package/tag/devlog/atom.xml +58 -0
- package/tag/devlog/feed.json +19 -0
- package/tag/devlog/rss.xml +62 -0
- package/tag/gauss/atom.xml +58 -0
- package/tag/gauss/feed.json +19 -0
- package/tag/gauss/rss.xml +62 -0
- package/tag/hexo/atom.xml +125 -0
- package/tag/hexo/feed.json +20 -0
- package/tag/hexo/rss.xml +129 -0
- package/tag/hexothemes/atom.xml +125 -0
- package/tag/hexothemes/feed.json +20 -0
- package/tag/hexothemes/rss.xml +129 -0
- package/tag/sitelog/atom.xml +125 -0
- package/tag/sitelog/feed.json +20 -0
- package/tag/sitelog/rss.xml +129 -0
- package/tags/DevLog/index.html +3351 -0
- package/tags/Gauss/index.html +3351 -0
- package/tags/Hexo/index.html +3351 -0
- package/tags/HexoThemes/index.html +3351 -0
- package/tags/SiteLog/index.html +3351 -0
- package/tags/index.html +3159 -0
- package/volantis-sw.js +797 -0
@@ -0,0 +1,3351 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="zh-CN,en,default">
|
3
|
+
<head hexo-theme='https://github.com/volantis-x/hexo-theme-volantis/#5.8.0'>
|
4
|
+
<meta name="generator" content="Hexo 6.3.0">
|
5
|
+
<meta name="Volantis" content="5.8.0">
|
6
|
+
<meta charset="utf-8">
|
7
|
+
<!-- SEO相关 -->
|
8
|
+
<meta name="robots" content="noindex,follow">
|
9
|
+
<link rel="canonical" href="https://nanaeo.cn/tags/gauss/"/>
|
10
|
+
<!-- 渲染优化 -->
|
11
|
+
<meta http-equiv='x-dns-prefetch-control' content='on' />
|
12
|
+
<link rel='dns-prefetch' href='https://unpkg.com'>
|
13
|
+
<link rel="preconnect" href="https://unpkg.com" crossorigin>
|
14
|
+
<meta name="renderer" content="webkit">
|
15
|
+
<meta name="force-rendering" content="webkit">
|
16
|
+
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
17
|
+
<meta http-equiv="Content-Security-Policy" content=" default-src 'self' https:; block-all-mixed-content; base-uri 'self' https:; form-action 'self' https:; worker-src 'self' https:; connect-src 'self' https: *; img-src 'self' data: https: *; media-src 'self' https: *; font-src 'self' data: https: *; frame-src 'self' https: *; manifest-src 'self' https: *; child-src https:; script-src 'self' https: 'unsafe-inline' *; style-src 'self' https: 'unsafe-inline' *; ">
|
18
|
+
<meta name="HandheldFriendly" content="True" >
|
19
|
+
<meta name="apple-mobile-web-app-capable" content="yes">
|
20
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
|
21
|
+
<meta content="black-translucent" name="apple-mobile-web-app-status-bar-style">
|
22
|
+
<meta content="telephone=no" name="format-detection">
|
23
|
+
<!-- import head_begin begin -->
|
24
|
+
<!-- import head_begin end -->
|
25
|
+
<!-- Custom Files headBegin begin-->
|
26
|
+
|
27
|
+
<!-- Custom Files headBegin end-->
|
28
|
+
<!-- front-matter head_begin begin -->
|
29
|
+
<!-- front-matter head_begin end -->
|
30
|
+
<link rel="preload" href="/css/style.css" as="style">
|
31
|
+
<link rel="preload" href="https://nanaeo.cn/asset/Sotheby.ttf" as="font" type="font/ttf" crossorigin="anonymous">
|
32
|
+
<link rel="preload" href="https://fastly.jsdelivr.net/gh/moieo/moieo@main/moieo.woff2" as="font" type="font/woff2" crossorigin="anonymous">
|
33
|
+
|
34
|
+
<!-- feed -->
|
35
|
+
<!-- 页面元数据 -->
|
36
|
+
<title>标签:Gauss - Village</title>
|
37
|
+
<meta name="keywords" content="null">
|
38
|
+
<meta desc name="description" content="It is a little blog~ - Mlikiowa - Village">
|
39
|
+
|
40
|
+
<meta property="og:type" content="website">
|
41
|
+
<meta property="og:title" content="Village">
|
42
|
+
<meta property="og:url" content="https://nanaeo.cn/tags/Gauss/index.html">
|
43
|
+
<meta property="og:site_name" content="Village">
|
44
|
+
<meta property="og:description" content="It is a little blog~">
|
45
|
+
<meta property="og:locale" content="zh_CN">
|
46
|
+
<meta property="og:image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png">
|
47
|
+
<meta property="article:author" content="Mlikiowa">
|
48
|
+
<meta name="twitter:card" content="summary">
|
49
|
+
<meta name="twitter:image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png">
|
50
|
+
<style>
|
51
|
+
/* 首屏样式 */
|
52
|
+
#safearea {
|
53
|
+
display: none;
|
54
|
+
}
|
55
|
+
.post-story + .post-story {
|
56
|
+
content-visibility: auto;
|
57
|
+
contain-intrinsic-size: 10px 500px;
|
58
|
+
}
|
59
|
+
:root {
|
60
|
+
--color-site-body: #e0eeee;
|
61
|
+
--color-site-bg: #e0eeee;
|
62
|
+
--color-site-inner: #fff;
|
63
|
+
--color-site-footer: #666;
|
64
|
+
--color-card: #fff0f5;
|
65
|
+
--color-text: #eea9b8;
|
66
|
+
--color-block: #f6f6f6;
|
67
|
+
--color-inlinecode: #ec7bb6;
|
68
|
+
--color-codeblock: #e0eeee;
|
69
|
+
--color-h1: #3a3a3a;
|
70
|
+
--color-h2: #3a3a3a;
|
71
|
+
--color-h3: #23464f;
|
72
|
+
--color-h4: #23464f;
|
73
|
+
--color-h5: #23464f;
|
74
|
+
--color-h6: #23464f;
|
75
|
+
--color-p: #23464f;
|
76
|
+
--color-list: #eea9b8;
|
77
|
+
--color-list-hl: #f7cdd4;
|
78
|
+
--color-meta: #888;
|
79
|
+
--color-read-bkg: #e0d8c8;
|
80
|
+
--color-read-post: #f8f1e2;
|
81
|
+
--color-copyright-bkg: #f5f5f5;
|
82
|
+
}
|
83
|
+
* {
|
84
|
+
box-sizing: border-box;
|
85
|
+
-webkit-box-sizing: border-box;
|
86
|
+
-moz-box-sizing: border-box;
|
87
|
+
outline: none;
|
88
|
+
margin: 0;
|
89
|
+
padding: 0;
|
90
|
+
}
|
91
|
+
*::-webkit-scrollbar {
|
92
|
+
height: 4px;
|
93
|
+
width: 4px;
|
94
|
+
}
|
95
|
+
*::-webkit-scrollbar-track-piece {
|
96
|
+
background: transparent;
|
97
|
+
}
|
98
|
+
*::-webkit-scrollbar-thumb {
|
99
|
+
background: #fcc;
|
100
|
+
cursor: pointer;
|
101
|
+
border-radius: 2px;
|
102
|
+
-webkit-border-radius: 2px;
|
103
|
+
}
|
104
|
+
*::-webkit-scrollbar-thumb:hover {
|
105
|
+
background: #ff5722;
|
106
|
+
}
|
107
|
+
html {
|
108
|
+
color: var(--color-text);
|
109
|
+
width: 100%;
|
110
|
+
height: 100%;
|
111
|
+
font-family: Dosis, "PingFang SC", "Microsoft YaHei", Helvetica, Arial, Menlo, Monaco, monospace, sans-serif;
|
112
|
+
font-size: 16px;
|
113
|
+
}
|
114
|
+
html >::-webkit-scrollbar {
|
115
|
+
height: 4px;
|
116
|
+
width: 4px;
|
117
|
+
}
|
118
|
+
html >::-webkit-scrollbar-track-piece {
|
119
|
+
background: transparent;
|
120
|
+
}
|
121
|
+
html >::-webkit-scrollbar-thumb {
|
122
|
+
background: #54b5a0 linear-gradient(45deg, rgba(255,255,255,0.4) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0.4) 75%, transparent 75%, transparent);
|
123
|
+
cursor: pointer;
|
124
|
+
border-radius: 2px;
|
125
|
+
-webkit-border-radius: 2px;
|
126
|
+
}
|
127
|
+
html >::-webkit-scrollbar-thumb:hover {
|
128
|
+
background: #54b5a0 linear-gradient(45deg, rgba(255,255,255,0.4) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0.4) 75%, transparent 75%, transparent);
|
129
|
+
}
|
130
|
+
body {
|
131
|
+
background-color: var(--color-site-body);
|
132
|
+
text-rendering: optimizelegibility;
|
133
|
+
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
134
|
+
line-height: 1.6;
|
135
|
+
-webkit-text-size-adjust: 100%;
|
136
|
+
-ms-text-size-adjust: 100%;
|
137
|
+
}
|
138
|
+
body.modal-active {
|
139
|
+
overflow: hidden;
|
140
|
+
}
|
141
|
+
@media screen and (max-width: 680px) {
|
142
|
+
body.modal-active {
|
143
|
+
position: fixed;
|
144
|
+
top: 0;
|
145
|
+
right: 0;
|
146
|
+
bottom: 0;
|
147
|
+
left: 0;
|
148
|
+
}
|
149
|
+
}
|
150
|
+
a {
|
151
|
+
color: #ec7bb6;
|
152
|
+
cursor: pointer;
|
153
|
+
text-decoration: none;
|
154
|
+
transition: all 0.28s ease;
|
155
|
+
-webkit-transition: all 0.28s ease;
|
156
|
+
-khtml-transition: all 0.28s ease;
|
157
|
+
-moz-transition: all 0.28s ease;
|
158
|
+
-o-transition: all 0.28s ease;
|
159
|
+
-ms-transition: all 0.28s ease;
|
160
|
+
}
|
161
|
+
a:hover {
|
162
|
+
color: #ff5722;
|
163
|
+
}
|
164
|
+
a:active,
|
165
|
+
a:hover {
|
166
|
+
outline: 0;
|
167
|
+
}
|
168
|
+
ul,
|
169
|
+
ol {
|
170
|
+
padding-left: 0;
|
171
|
+
}
|
172
|
+
ul li,
|
173
|
+
ol li {
|
174
|
+
list-style: none;
|
175
|
+
}
|
176
|
+
header {
|
177
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
178
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
179
|
+
display: block;
|
180
|
+
}
|
181
|
+
img {
|
182
|
+
border: 0;
|
183
|
+
background: none;
|
184
|
+
max-width: 100%;
|
185
|
+
}
|
186
|
+
svg:not(:root) {
|
187
|
+
overflow: hidden;
|
188
|
+
}
|
189
|
+
hr {
|
190
|
+
-moz-box-sizing: content-box;
|
191
|
+
box-sizing: content-box;
|
192
|
+
-webkit-box-sizing: content-box;
|
193
|
+
-moz-box-sizing: content-box;
|
194
|
+
height: 0;
|
195
|
+
border: 0;
|
196
|
+
border-radius: 1px;
|
197
|
+
-webkit-border-radius: 1px;
|
198
|
+
border-bottom: 1px solid rgba(238,169,184,0.1);
|
199
|
+
}
|
200
|
+
button,
|
201
|
+
input {
|
202
|
+
color: inherit;
|
203
|
+
font: inherit;
|
204
|
+
margin: 0;
|
205
|
+
}
|
206
|
+
button {
|
207
|
+
overflow: visible;
|
208
|
+
text-transform: none;
|
209
|
+
-webkit-appearance: button;
|
210
|
+
cursor: pointer;
|
211
|
+
}
|
212
|
+
@supports (backdrop-filter: blur(20px)) {
|
213
|
+
.blur {
|
214
|
+
background: rgba(255,240,245,0.9) !important;
|
215
|
+
backdrop-filter: saturate(200%) blur(20px);
|
216
|
+
}
|
217
|
+
}
|
218
|
+
.shadow {
|
219
|
+
box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1);
|
220
|
+
-webkit-box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1);
|
221
|
+
}
|
222
|
+
.shadow.floatable {
|
223
|
+
transition: all 0.28s ease;
|
224
|
+
-webkit-transition: all 0.28s ease;
|
225
|
+
-khtml-transition: all 0.28s ease;
|
226
|
+
-moz-transition: all 0.28s ease;
|
227
|
+
-o-transition: all 0.28s ease;
|
228
|
+
-ms-transition: all 0.28s ease;
|
229
|
+
}
|
230
|
+
.shadow.floatable:hover {
|
231
|
+
box-shadow: 0 2px 4px 0px rgba(0,0,0,0.1), 0 4px 8px 0px rgba(0,0,0,0.1), 0 8px 16px 0px rgba(0,0,0,0.1);
|
232
|
+
-webkit-box-shadow: 0 2px 4px 0px rgba(0,0,0,0.1), 0 4px 8px 0px rgba(0,0,0,0.1), 0 8px 16px 0px rgba(0,0,0,0.1);
|
233
|
+
}
|
234
|
+
#l_cover {
|
235
|
+
min-height: 64px;
|
236
|
+
}
|
237
|
+
.cover-wrapper {
|
238
|
+
top: 0;
|
239
|
+
left: 0;
|
240
|
+
max-width: 100%;
|
241
|
+
height: 100vh;
|
242
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
243
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
244
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
245
|
+
display: -webkit-flex /* NEW - Chrome */;
|
246
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
247
|
+
display: flex;
|
248
|
+
flex-wrap: nowrap;
|
249
|
+
-webkit-flex-wrap: nowrap;
|
250
|
+
-khtml-flex-wrap: nowrap;
|
251
|
+
-moz-flex-wrap: nowrap;
|
252
|
+
-o-flex-wrap: nowrap;
|
253
|
+
-ms-flex-wrap: nowrap;
|
254
|
+
-webkit-box-direction: normal;
|
255
|
+
-moz-box-direction: normal;
|
256
|
+
-webkit-box-orient: vertical;
|
257
|
+
-moz-box-orient: vertical;
|
258
|
+
-webkit-flex-direction: column;
|
259
|
+
-ms-flex-direction: column;
|
260
|
+
flex-direction: column;
|
261
|
+
align-items: center;
|
262
|
+
align-self: center;
|
263
|
+
align-content: center;
|
264
|
+
color: var(--color-site-inner);
|
265
|
+
padding: 0 16px;
|
266
|
+
user-select: none;
|
267
|
+
-webkit-user-select: none;
|
268
|
+
-moz-user-select: none;
|
269
|
+
-ms-user-select: none;
|
270
|
+
position: relative;
|
271
|
+
overflow: hidden;
|
272
|
+
margin-bottom: -100px;
|
273
|
+
}
|
274
|
+
.cover-wrapper .cover-bg {
|
275
|
+
position: absolute;
|
276
|
+
width: 100%;
|
277
|
+
height: 100%;
|
278
|
+
background-position: center;
|
279
|
+
background-size: cover;
|
280
|
+
-webkit-background-size: cover;
|
281
|
+
-moz-background-size: cover;
|
282
|
+
}
|
283
|
+
.cover-wrapper .cover-bg.lazyload:not(.loaded) {
|
284
|
+
opacity: 0;
|
285
|
+
-webkit-opacity: 0;
|
286
|
+
-moz-opacity: 0;
|
287
|
+
}
|
288
|
+
.cover-wrapper .cover-bg.lazyload.loaded {
|
289
|
+
animation-delay: 0s;
|
290
|
+
animation-duration: 0.5s;
|
291
|
+
animation-fill-mode: forwards;
|
292
|
+
animation-timing-function: ease-out;
|
293
|
+
animation-name: fadeIn;
|
294
|
+
}
|
295
|
+
@-moz-keyframes fadeIn {
|
296
|
+
0% {
|
297
|
+
opacity: 0;
|
298
|
+
-webkit-opacity: 0;
|
299
|
+
-moz-opacity: 0;
|
300
|
+
filter: blur(12px);
|
301
|
+
transform: scale(1.02);
|
302
|
+
-webkit-transform: scale(1.02);
|
303
|
+
-khtml-transform: scale(1.02);
|
304
|
+
-moz-transform: scale(1.02);
|
305
|
+
-o-transform: scale(1.02);
|
306
|
+
-ms-transform: scale(1.02);
|
307
|
+
}
|
308
|
+
100% {
|
309
|
+
opacity: 1;
|
310
|
+
-webkit-opacity: 1;
|
311
|
+
-moz-opacity: 1;
|
312
|
+
}
|
313
|
+
}
|
314
|
+
@-webkit-keyframes fadeIn {
|
315
|
+
0% {
|
316
|
+
opacity: 0;
|
317
|
+
-webkit-opacity: 0;
|
318
|
+
-moz-opacity: 0;
|
319
|
+
filter: blur(12px);
|
320
|
+
transform: scale(1.02);
|
321
|
+
-webkit-transform: scale(1.02);
|
322
|
+
-khtml-transform: scale(1.02);
|
323
|
+
-moz-transform: scale(1.02);
|
324
|
+
-o-transform: scale(1.02);
|
325
|
+
-ms-transform: scale(1.02);
|
326
|
+
}
|
327
|
+
100% {
|
328
|
+
opacity: 1;
|
329
|
+
-webkit-opacity: 1;
|
330
|
+
-moz-opacity: 1;
|
331
|
+
}
|
332
|
+
}
|
333
|
+
@-o-keyframes fadeIn {
|
334
|
+
0% {
|
335
|
+
opacity: 0;
|
336
|
+
-webkit-opacity: 0;
|
337
|
+
-moz-opacity: 0;
|
338
|
+
filter: blur(12px);
|
339
|
+
transform: scale(1.02);
|
340
|
+
-webkit-transform: scale(1.02);
|
341
|
+
-khtml-transform: scale(1.02);
|
342
|
+
-moz-transform: scale(1.02);
|
343
|
+
-o-transform: scale(1.02);
|
344
|
+
-ms-transform: scale(1.02);
|
345
|
+
}
|
346
|
+
100% {
|
347
|
+
opacity: 1;
|
348
|
+
-webkit-opacity: 1;
|
349
|
+
-moz-opacity: 1;
|
350
|
+
}
|
351
|
+
}
|
352
|
+
@keyframes fadeIn {
|
353
|
+
0% {
|
354
|
+
opacity: 0;
|
355
|
+
-webkit-opacity: 0;
|
356
|
+
-moz-opacity: 0;
|
357
|
+
filter: blur(12px);
|
358
|
+
transform: scale(1.02);
|
359
|
+
-webkit-transform: scale(1.02);
|
360
|
+
-khtml-transform: scale(1.02);
|
361
|
+
-moz-transform: scale(1.02);
|
362
|
+
-o-transform: scale(1.02);
|
363
|
+
-ms-transform: scale(1.02);
|
364
|
+
}
|
365
|
+
100% {
|
366
|
+
opacity: 1;
|
367
|
+
-webkit-opacity: 1;
|
368
|
+
-moz-opacity: 1;
|
369
|
+
}
|
370
|
+
}
|
371
|
+
.cover-wrapper .cover-body {
|
372
|
+
z-index: 1;
|
373
|
+
position: relative;
|
374
|
+
width: 100%;
|
375
|
+
height: 100%;
|
376
|
+
}
|
377
|
+
.cover-wrapper#full {
|
378
|
+
height: calc(100vh + 100px);
|
379
|
+
padding-bottom: 100px;
|
380
|
+
}
|
381
|
+
.cover-wrapper#half {
|
382
|
+
max-height: 640px;
|
383
|
+
min-height: 400px;
|
384
|
+
height: calc(36vh - 64px + 200px);
|
385
|
+
}
|
386
|
+
.cover-wrapper #scroll-down {
|
387
|
+
width: 100%;
|
388
|
+
height: 64px;
|
389
|
+
position: absolute;
|
390
|
+
bottom: 100px;
|
391
|
+
text-align: center;
|
392
|
+
cursor: pointer;
|
393
|
+
}
|
394
|
+
.cover-wrapper #scroll-down .scroll-down-effects {
|
395
|
+
color: #fff;
|
396
|
+
font-size: 24px;
|
397
|
+
line-height: 64px;
|
398
|
+
position: absolute;
|
399
|
+
width: 24px;
|
400
|
+
left: calc(50% - 12px);
|
401
|
+
text-shadow: 0 1px 2px rgba(0,0,0,0.1);
|
402
|
+
animation: scroll-down-effect 1.5s infinite;
|
403
|
+
-webkit-animation: scroll-down-effect 1.5s infinite;
|
404
|
+
-khtml-animation: scroll-down-effect 1.5s infinite;
|
405
|
+
-moz-animation: scroll-down-effect 1.5s infinite;
|
406
|
+
-o-animation: scroll-down-effect 1.5s infinite;
|
407
|
+
-ms-animation: scroll-down-effect 1.5s infinite;
|
408
|
+
}
|
409
|
+
@-moz-keyframes scroll-down-effect {
|
410
|
+
0% {
|
411
|
+
top: 0;
|
412
|
+
opacity: 1;
|
413
|
+
-webkit-opacity: 1;
|
414
|
+
-moz-opacity: 1;
|
415
|
+
}
|
416
|
+
50% {
|
417
|
+
top: -16px;
|
418
|
+
opacity: 0.4;
|
419
|
+
-webkit-opacity: 0.4;
|
420
|
+
-moz-opacity: 0.4;
|
421
|
+
}
|
422
|
+
100% {
|
423
|
+
top: 0;
|
424
|
+
opacity: 1;
|
425
|
+
-webkit-opacity: 1;
|
426
|
+
-moz-opacity: 1;
|
427
|
+
}
|
428
|
+
}
|
429
|
+
@-webkit-keyframes scroll-down-effect {
|
430
|
+
0% {
|
431
|
+
top: 0;
|
432
|
+
opacity: 1;
|
433
|
+
-webkit-opacity: 1;
|
434
|
+
-moz-opacity: 1;
|
435
|
+
}
|
436
|
+
50% {
|
437
|
+
top: -16px;
|
438
|
+
opacity: 0.4;
|
439
|
+
-webkit-opacity: 0.4;
|
440
|
+
-moz-opacity: 0.4;
|
441
|
+
}
|
442
|
+
100% {
|
443
|
+
top: 0;
|
444
|
+
opacity: 1;
|
445
|
+
-webkit-opacity: 1;
|
446
|
+
-moz-opacity: 1;
|
447
|
+
}
|
448
|
+
}
|
449
|
+
@-o-keyframes scroll-down-effect {
|
450
|
+
0% {
|
451
|
+
top: 0;
|
452
|
+
opacity: 1;
|
453
|
+
-webkit-opacity: 1;
|
454
|
+
-moz-opacity: 1;
|
455
|
+
}
|
456
|
+
50% {
|
457
|
+
top: -16px;
|
458
|
+
opacity: 0.4;
|
459
|
+
-webkit-opacity: 0.4;
|
460
|
+
-moz-opacity: 0.4;
|
461
|
+
}
|
462
|
+
100% {
|
463
|
+
top: 0;
|
464
|
+
opacity: 1;
|
465
|
+
-webkit-opacity: 1;
|
466
|
+
-moz-opacity: 1;
|
467
|
+
}
|
468
|
+
}
|
469
|
+
@keyframes scroll-down-effect {
|
470
|
+
0% {
|
471
|
+
top: 0;
|
472
|
+
opacity: 1;
|
473
|
+
-webkit-opacity: 1;
|
474
|
+
-moz-opacity: 1;
|
475
|
+
}
|
476
|
+
50% {
|
477
|
+
top: -16px;
|
478
|
+
opacity: 0.4;
|
479
|
+
-webkit-opacity: 0.4;
|
480
|
+
-moz-opacity: 0.4;
|
481
|
+
}
|
482
|
+
100% {
|
483
|
+
top: 0;
|
484
|
+
opacity: 1;
|
485
|
+
-webkit-opacity: 1;
|
486
|
+
-moz-opacity: 1;
|
487
|
+
}
|
488
|
+
}
|
489
|
+
.cover-wrapper .cover-body {
|
490
|
+
margin-top: 64px;
|
491
|
+
margin-bottom: 100px;
|
492
|
+
}
|
493
|
+
.cover-wrapper .cover-body,
|
494
|
+
.cover-wrapper .cover-body .top,
|
495
|
+
.cover-wrapper .cover-body .bottom {
|
496
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
497
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
498
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
499
|
+
display: -webkit-flex /* NEW - Chrome */;
|
500
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
501
|
+
display: flex;
|
502
|
+
-webkit-box-direction: normal;
|
503
|
+
-moz-box-direction: normal;
|
504
|
+
-webkit-box-orient: vertical;
|
505
|
+
-moz-box-orient: vertical;
|
506
|
+
-webkit-flex-direction: column;
|
507
|
+
-ms-flex-direction: column;
|
508
|
+
flex-direction: column;
|
509
|
+
align-items: center;
|
510
|
+
justify-content: center;
|
511
|
+
-webkit-justify-content: center;
|
512
|
+
-khtml-justify-content: center;
|
513
|
+
-moz-justify-content: center;
|
514
|
+
-o-justify-content: center;
|
515
|
+
-ms-justify-content: center;
|
516
|
+
max-width: 100%;
|
517
|
+
}
|
518
|
+
.cover-wrapper .cover-body .bottom {
|
519
|
+
margin-top: 32px;
|
520
|
+
}
|
521
|
+
.cover-wrapper .cover-body .title {
|
522
|
+
font-family: Sotheby, Helvetica, monospace;
|
523
|
+
font-size: 3.125rem;
|
524
|
+
line-height: 1.2;
|
525
|
+
text-shadow: 0 1px 2px rgba(0,0,0,0.1);
|
526
|
+
}
|
527
|
+
.cover-wrapper .cover-body .subtitle {
|
528
|
+
font-size: 20px;
|
529
|
+
}
|
530
|
+
.cover-wrapper .cover-body .logo {
|
531
|
+
max-height: 120px;
|
532
|
+
max-width: calc(100% - 4 * 16px);
|
533
|
+
}
|
534
|
+
@media screen and (min-height: 1024px) {
|
535
|
+
.cover-wrapper .cover-body .title {
|
536
|
+
font-size: 3rem;
|
537
|
+
}
|
538
|
+
.cover-wrapper .cover-body .subtitle {
|
539
|
+
font-size: 1.05rem;
|
540
|
+
}
|
541
|
+
.cover-wrapper .cover-body .logo {
|
542
|
+
max-height: 150px;
|
543
|
+
}
|
544
|
+
}
|
545
|
+
.cover-wrapper .cover-body .m_search {
|
546
|
+
position: relative;
|
547
|
+
max-width: calc(100% - 16px);
|
548
|
+
width: 320px;
|
549
|
+
vertical-align: middle;
|
550
|
+
}
|
551
|
+
.cover-wrapper .cover-body .m_search .form {
|
552
|
+
position: relative;
|
553
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
554
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
555
|
+
display: block;
|
556
|
+
width: 100%;
|
557
|
+
}
|
558
|
+
.cover-wrapper .cover-body .m_search .icon,
|
559
|
+
.cover-wrapper .cover-body .m_search .input {
|
560
|
+
transition: all 0.28s ease;
|
561
|
+
-webkit-transition: all 0.28s ease;
|
562
|
+
-khtml-transition: all 0.28s ease;
|
563
|
+
-moz-transition: all 0.28s ease;
|
564
|
+
-o-transition: all 0.28s ease;
|
565
|
+
-ms-transition: all 0.28s ease;
|
566
|
+
}
|
567
|
+
.cover-wrapper .cover-body .m_search .icon {
|
568
|
+
position: absolute;
|
569
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
570
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
571
|
+
display: block;
|
572
|
+
line-height: 2.5rem;
|
573
|
+
width: 32px;
|
574
|
+
top: 0;
|
575
|
+
left: 5px;
|
576
|
+
color: rgba(35,70,79,0.75);
|
577
|
+
}
|
578
|
+
.cover-wrapper .cover-body .m_search .input {
|
579
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
580
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
581
|
+
display: block;
|
582
|
+
height: 2.5rem;
|
583
|
+
width: 100%;
|
584
|
+
box-shadow: none;
|
585
|
+
-webkit-box-shadow: none;
|
586
|
+
box-sizing: border-box;
|
587
|
+
-webkit-box-sizing: border-box;
|
588
|
+
-moz-box-sizing: border-box;
|
589
|
+
font-size: 0.875rem;
|
590
|
+
-webkit-appearance: none;
|
591
|
+
padding-left: 36px;
|
592
|
+
border-radius: 1.4rem;
|
593
|
+
-webkit-border-radius: 1.4rem;
|
594
|
+
background: rgba(255,240,245,0.6);
|
595
|
+
backdrop-filter: blur(10px);
|
596
|
+
border: none;
|
597
|
+
color: var(--color-text);
|
598
|
+
}
|
599
|
+
@media screen and (max-width: 500px) {
|
600
|
+
.cover-wrapper .cover-body .m_search .input {
|
601
|
+
padding-left: 36px;
|
602
|
+
}
|
603
|
+
}
|
604
|
+
.cover-wrapper .cover-body .m_search .input:hover {
|
605
|
+
background: rgba(255,240,245,0.8);
|
606
|
+
}
|
607
|
+
.cover-wrapper .cover-body .m_search .input:focus {
|
608
|
+
background: #fff0f5;
|
609
|
+
}
|
610
|
+
.cover-wrapper .list-h {
|
611
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
612
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
613
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
614
|
+
display: -webkit-flex /* NEW - Chrome */;
|
615
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
616
|
+
display: flex;
|
617
|
+
-webkit-box-direction: normal;
|
618
|
+
-moz-box-direction: normal;
|
619
|
+
-webkit-box-orient: horizontal;
|
620
|
+
-moz-box-orient: horizontal;
|
621
|
+
-webkit-flex-direction: row;
|
622
|
+
-ms-flex-direction: row;
|
623
|
+
flex-direction: row;
|
624
|
+
flex-wrap: wrap;
|
625
|
+
-webkit-flex-wrap: wrap;
|
626
|
+
-khtml-flex-wrap: wrap;
|
627
|
+
-moz-flex-wrap: wrap;
|
628
|
+
-o-flex-wrap: wrap;
|
629
|
+
-ms-flex-wrap: wrap;
|
630
|
+
align-items: stretch;
|
631
|
+
border-radius: 4px;
|
632
|
+
-webkit-border-radius: 4px;
|
633
|
+
user-select: none;
|
634
|
+
-webkit-user-select: none;
|
635
|
+
-moz-user-select: none;
|
636
|
+
-ms-user-select: none;
|
637
|
+
}
|
638
|
+
.cover-wrapper .list-h a {
|
639
|
+
-webkit-box-flex: 1;
|
640
|
+
-moz-box-flex: 1;
|
641
|
+
-webkit-flex: 1 0;
|
642
|
+
-ms-flex: 1 0;
|
643
|
+
flex: 1 0;
|
644
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
645
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
646
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
647
|
+
display: -webkit-flex /* NEW - Chrome */;
|
648
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
649
|
+
display: flex;
|
650
|
+
font-weight: 600;
|
651
|
+
}
|
652
|
+
.cover-wrapper .list-h a img {
|
653
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
654
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
655
|
+
display: block;
|
656
|
+
border-radius: 2px;
|
657
|
+
-webkit-border-radius: 2px;
|
658
|
+
margin: 4px;
|
659
|
+
min-width: 40px;
|
660
|
+
max-width: 44px;
|
661
|
+
}
|
662
|
+
@media screen and (max-width: 768px) {
|
663
|
+
.cover-wrapper .list-h a img {
|
664
|
+
min-width: 36px;
|
665
|
+
max-width: 40px;
|
666
|
+
}
|
667
|
+
}
|
668
|
+
@media screen and (max-width: 500px) {
|
669
|
+
.cover-wrapper .list-h a img {
|
670
|
+
margin: 2px 4px;
|
671
|
+
min-width: 32px;
|
672
|
+
max-width: 36px;
|
673
|
+
}
|
674
|
+
}
|
675
|
+
@media screen and (max-width: 375px) {
|
676
|
+
.cover-wrapper .list-h a img {
|
677
|
+
min-width: 28px;
|
678
|
+
max-width: 32px;
|
679
|
+
}
|
680
|
+
}
|
681
|
+
.cover-wrapper {
|
682
|
+
max-width: 100%;
|
683
|
+
}
|
684
|
+
.cover-wrapper.search .bottom .menu {
|
685
|
+
margin-top: 16px;
|
686
|
+
}
|
687
|
+
.cover-wrapper.search .bottom .menu .list-h a {
|
688
|
+
white-space: nowrap;
|
689
|
+
-webkit-box-direction: normal;
|
690
|
+
-moz-box-direction: normal;
|
691
|
+
-webkit-box-orient: horizontal;
|
692
|
+
-moz-box-orient: horizontal;
|
693
|
+
-webkit-flex-direction: row;
|
694
|
+
-ms-flex-direction: row;
|
695
|
+
flex-direction: row;
|
696
|
+
align-items: baseline;
|
697
|
+
padding: 2px;
|
698
|
+
margin: 4px;
|
699
|
+
color: var(--color-site-inner);
|
700
|
+
opacity: 0.75;
|
701
|
+
-webkit-opacity: 0.75;
|
702
|
+
-moz-opacity: 0.75;
|
703
|
+
text-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
704
|
+
border-bottom: 2px solid transparent;
|
705
|
+
}
|
706
|
+
.cover-wrapper.search .bottom .menu .list-h a i {
|
707
|
+
margin-right: 4px;
|
708
|
+
}
|
709
|
+
.cover-wrapper.search .bottom .menu .list-h a p {
|
710
|
+
font-size: 0.9375rem;
|
711
|
+
}
|
712
|
+
.cover-wrapper.search .bottom .menu .list-h a:hover,
|
713
|
+
.cover-wrapper.search .bottom .menu .list-h a.active,
|
714
|
+
.cover-wrapper.search .bottom .menu .list-h a:active {
|
715
|
+
opacity: 1;
|
716
|
+
-webkit-opacity: 1;
|
717
|
+
-moz-opacity: 1;
|
718
|
+
border-bottom: 2px solid var(--color-site-inner);
|
719
|
+
}
|
720
|
+
@font-face {
|
721
|
+
font-family: 'Dosis';
|
722
|
+
src: url("https://fastly.jsdelivr.net/gh/moieo/moieo@main/moieo.woff2");
|
723
|
+
font-weight: 'normal';
|
724
|
+
font-style: 'normal';
|
725
|
+
font-display: swap;
|
726
|
+
}
|
727
|
+
@font-face {
|
728
|
+
font-family: 'Sotheby';
|
729
|
+
src: url("https://nanaeo.cn/asset/Sotheby.ttf");
|
730
|
+
font-weight: 'normal';
|
731
|
+
font-style: 'normal';
|
732
|
+
font-display: swap;
|
733
|
+
}
|
734
|
+
.l_header {
|
735
|
+
position: fixed;
|
736
|
+
z-index: 1000;
|
737
|
+
top: 0;
|
738
|
+
width: 100%;
|
739
|
+
height: 64px;
|
740
|
+
background: var(--color-card);
|
741
|
+
box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1);
|
742
|
+
-webkit-box-shadow: 0 1px 2px 0px rgba(0,0,0,0.1);
|
743
|
+
}
|
744
|
+
.l_header.auto {
|
745
|
+
transition: opacity 0.4s ease;
|
746
|
+
-webkit-transition: opacity 0.4s ease;
|
747
|
+
-khtml-transition: opacity 0.4s ease;
|
748
|
+
-moz-transition: opacity 0.4s ease;
|
749
|
+
-o-transition: opacity 0.4s ease;
|
750
|
+
-ms-transition: opacity 0.4s ease;
|
751
|
+
visibility: hidden;
|
752
|
+
}
|
753
|
+
.l_header.auto.show {
|
754
|
+
opacity: 1 !important;
|
755
|
+
-webkit-opacity: 1 !important;
|
756
|
+
-moz-opacity: 1 !important;
|
757
|
+
visibility: visible;
|
758
|
+
}
|
759
|
+
.l_header .container {
|
760
|
+
margin-left: 16px;
|
761
|
+
margin-right: 16px;
|
762
|
+
}
|
763
|
+
.l_header #wrapper {
|
764
|
+
height: 100%;
|
765
|
+
user-select: none;
|
766
|
+
-webkit-user-select: none;
|
767
|
+
-moz-user-select: none;
|
768
|
+
-ms-user-select: none;
|
769
|
+
}
|
770
|
+
.l_header #wrapper .nav-main,
|
771
|
+
.l_header #wrapper .nav-sub {
|
772
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
773
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
774
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
775
|
+
display: -webkit-flex /* NEW - Chrome */;
|
776
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
777
|
+
display: flex;
|
778
|
+
flex-wrap: nowrap;
|
779
|
+
-webkit-flex-wrap: nowrap;
|
780
|
+
-khtml-flex-wrap: nowrap;
|
781
|
+
-moz-flex-wrap: nowrap;
|
782
|
+
-o-flex-wrap: nowrap;
|
783
|
+
-ms-flex-wrap: nowrap;
|
784
|
+
justify-content: space-between;
|
785
|
+
-webkit-justify-content: space-between;
|
786
|
+
-khtml-justify-content: space-between;
|
787
|
+
-moz-justify-content: space-between;
|
788
|
+
-o-justify-content: space-between;
|
789
|
+
-ms-justify-content: space-between;
|
790
|
+
align-items: center;
|
791
|
+
}
|
792
|
+
.l_header #wrapper .nav-main {
|
793
|
+
transition: all 0.28s ease;
|
794
|
+
-webkit-transition: all 0.28s ease;
|
795
|
+
-khtml-transition: all 0.28s ease;
|
796
|
+
-moz-transition: all 0.28s ease;
|
797
|
+
-o-transition: all 0.28s ease;
|
798
|
+
-ms-transition: all 0.28s ease;
|
799
|
+
}
|
800
|
+
.l_header #wrapper.sub .nav-main {
|
801
|
+
transform: translateY(-64px);
|
802
|
+
-webkit-transform: translateY(-64px);
|
803
|
+
-khtml-transform: translateY(-64px);
|
804
|
+
-moz-transform: translateY(-64px);
|
805
|
+
-o-transform: translateY(-64px);
|
806
|
+
-ms-transform: translateY(-64px);
|
807
|
+
}
|
808
|
+
.l_header #wrapper .nav-sub {
|
809
|
+
transition: all 0.28s ease;
|
810
|
+
-webkit-transition: all 0.28s ease;
|
811
|
+
-khtml-transition: all 0.28s ease;
|
812
|
+
-moz-transition: all 0.28s ease;
|
813
|
+
-o-transition: all 0.28s ease;
|
814
|
+
-ms-transition: all 0.28s ease;
|
815
|
+
opacity: 0;
|
816
|
+
-webkit-opacity: 0;
|
817
|
+
-moz-opacity: 0;
|
818
|
+
height: 64px;
|
819
|
+
width: calc(100% - 2 * 16px);
|
820
|
+
position: absolute;
|
821
|
+
}
|
822
|
+
.l_header #wrapper .nav-sub ::-webkit-scrollbar {
|
823
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
824
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
825
|
+
display: none;
|
826
|
+
}
|
827
|
+
@media screen and (min-width: 2048px) {
|
828
|
+
.l_header #wrapper .nav-sub {
|
829
|
+
max-width: 55vw;
|
830
|
+
margin: auto;
|
831
|
+
}
|
832
|
+
}
|
833
|
+
.l_header #wrapper.sub .nav-sub {
|
834
|
+
opacity: 1;
|
835
|
+
-webkit-opacity: 1;
|
836
|
+
-moz-opacity: 1;
|
837
|
+
}
|
838
|
+
.l_header #wrapper .title {
|
839
|
+
position: relative;
|
840
|
+
color: var(--color-text);
|
841
|
+
padding-left: 24px;
|
842
|
+
max-height: 64px;
|
843
|
+
}
|
844
|
+
.l_header #wrapper .nav-main .title {
|
845
|
+
white-space: nowrap;
|
846
|
+
overflow: hidden;
|
847
|
+
text-overflow: ellipsis;
|
848
|
+
flex-shrink: 0;
|
849
|
+
line-height: 64px;
|
850
|
+
padding: 0 24px;
|
851
|
+
font-size: 1.25rem;
|
852
|
+
font-family: Sotheby, Helvetica, monospace;
|
853
|
+
}
|
854
|
+
.l_header #wrapper .nav-main .title img {
|
855
|
+
height: 64px;
|
856
|
+
}
|
857
|
+
.l_header .nav-sub {
|
858
|
+
max-width: 1080px;
|
859
|
+
margin: auto;
|
860
|
+
}
|
861
|
+
.l_header .nav-sub .title {
|
862
|
+
font-weight: bold;
|
863
|
+
font-family: Dosis, "PingFang SC", "Microsoft YaHei", Helvetica, Arial, Menlo, Monaco, monospace, sans-serif;
|
864
|
+
line-height: 1.2;
|
865
|
+
max-height: 64px;
|
866
|
+
white-space: normal;
|
867
|
+
flex-shrink: 1;
|
868
|
+
}
|
869
|
+
.l_header .switcher {
|
870
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
871
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
872
|
+
display: none;
|
873
|
+
line-height: 64px;
|
874
|
+
align-items: center;
|
875
|
+
}
|
876
|
+
.l_header .switcher .s-toc {
|
877
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
878
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
879
|
+
display: none;
|
880
|
+
}
|
881
|
+
@media screen and (max-width: 768px) {
|
882
|
+
.l_header .switcher .s-toc {
|
883
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
884
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
885
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
886
|
+
display: -webkit-flex /* NEW - Chrome */;
|
887
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
888
|
+
display: flex;
|
889
|
+
}
|
890
|
+
}
|
891
|
+
.l_header .switcher >li {
|
892
|
+
height: 48px;
|
893
|
+
transition: all 0.28s ease;
|
894
|
+
-webkit-transition: all 0.28s ease;
|
895
|
+
-khtml-transition: all 0.28s ease;
|
896
|
+
-moz-transition: all 0.28s ease;
|
897
|
+
-o-transition: all 0.28s ease;
|
898
|
+
-ms-transition: all 0.28s ease;
|
899
|
+
margin: 2px;
|
900
|
+
}
|
901
|
+
@media screen and (max-width: 500px) {
|
902
|
+
.l_header .switcher >li {
|
903
|
+
margin: 0 1px;
|
904
|
+
height: 48px;
|
905
|
+
}
|
906
|
+
}
|
907
|
+
.l_header .switcher >li >a {
|
908
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
909
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
910
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
911
|
+
display: -webkit-flex /* NEW - Chrome */;
|
912
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
913
|
+
display: flex;
|
914
|
+
justify-content: center;
|
915
|
+
-webkit-justify-content: center;
|
916
|
+
-khtml-justify-content: center;
|
917
|
+
-moz-justify-content: center;
|
918
|
+
-o-justify-content: center;
|
919
|
+
-ms-justify-content: center;
|
920
|
+
align-items: center;
|
921
|
+
width: 48px;
|
922
|
+
height: 48px;
|
923
|
+
padding: 0.85em 1.1em;
|
924
|
+
border-radius: 100px;
|
925
|
+
-webkit-border-radius: 100px;
|
926
|
+
border: none;
|
927
|
+
transition: all 0.28s ease;
|
928
|
+
-webkit-transition: all 0.28s ease;
|
929
|
+
-khtml-transition: all 0.28s ease;
|
930
|
+
-moz-transition: all 0.28s ease;
|
931
|
+
-o-transition: all 0.28s ease;
|
932
|
+
-ms-transition: all 0.28s ease;
|
933
|
+
color: #fcc;
|
934
|
+
}
|
935
|
+
.l_header .switcher >li >a:hover {
|
936
|
+
border: none;
|
937
|
+
}
|
938
|
+
.l_header .switcher >li >a.active,
|
939
|
+
.l_header .switcher >li >a:active {
|
940
|
+
border: none;
|
941
|
+
background: var(--color-site-bg);
|
942
|
+
}
|
943
|
+
@media screen and (max-width: 500px) {
|
944
|
+
.l_header .switcher >li >a {
|
945
|
+
width: 36px;
|
946
|
+
height: 48px;
|
947
|
+
}
|
948
|
+
}
|
949
|
+
.l_header .nav-sub .switcher {
|
950
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
951
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
952
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
953
|
+
display: -webkit-flex /* NEW - Chrome */;
|
954
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
955
|
+
display: flex;
|
956
|
+
}
|
957
|
+
.l_header .m_search {
|
958
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
959
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
960
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
961
|
+
display: -webkit-flex /* NEW - Chrome */;
|
962
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
963
|
+
display: flex;
|
964
|
+
height: 64px;
|
965
|
+
width: 240px;
|
966
|
+
transition: all 0.28s ease;
|
967
|
+
-webkit-transition: all 0.28s ease;
|
968
|
+
-khtml-transition: all 0.28s ease;
|
969
|
+
-moz-transition: all 0.28s ease;
|
970
|
+
-o-transition: all 0.28s ease;
|
971
|
+
-ms-transition: all 0.28s ease;
|
972
|
+
}
|
973
|
+
@media screen and (max-width: 1024px) {
|
974
|
+
.l_header .m_search {
|
975
|
+
width: 44px;
|
976
|
+
min-width: 44px;
|
977
|
+
}
|
978
|
+
.l_header .m_search input::placeholder {
|
979
|
+
opacity: 0;
|
980
|
+
-webkit-opacity: 0;
|
981
|
+
-moz-opacity: 0;
|
982
|
+
}
|
983
|
+
.l_header .m_search:hover {
|
984
|
+
width: 240px;
|
985
|
+
}
|
986
|
+
.l_header .m_search:hover input::placeholder {
|
987
|
+
opacity: 1;
|
988
|
+
-webkit-opacity: 1;
|
989
|
+
-moz-opacity: 1;
|
990
|
+
}
|
991
|
+
}
|
992
|
+
@media screen and (min-width: 500px) {
|
993
|
+
.l_header .m_search:hover .input {
|
994
|
+
width: 100%;
|
995
|
+
}
|
996
|
+
.l_header .m_search:hover .input::placeholder {
|
997
|
+
opacity: 1;
|
998
|
+
-webkit-opacity: 1;
|
999
|
+
-moz-opacity: 1;
|
1000
|
+
}
|
1001
|
+
}
|
1002
|
+
@media screen and (max-width: 500px) {
|
1003
|
+
.l_header .m_search {
|
1004
|
+
min-width: 0;
|
1005
|
+
}
|
1006
|
+
.l_header .m_search input::placeholder {
|
1007
|
+
opacity: 1;
|
1008
|
+
-webkit-opacity: 1;
|
1009
|
+
-moz-opacity: 1;
|
1010
|
+
}
|
1011
|
+
}
|
1012
|
+
.l_header .m_search .form {
|
1013
|
+
position: relative;
|
1014
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1015
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1016
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
1017
|
+
display: -webkit-flex /* NEW - Chrome */;
|
1018
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
1019
|
+
display: flex;
|
1020
|
+
width: 100%;
|
1021
|
+
align-items: center;
|
1022
|
+
}
|
1023
|
+
.l_header .m_search .icon {
|
1024
|
+
position: absolute;
|
1025
|
+
width: 36px;
|
1026
|
+
left: 5px;
|
1027
|
+
color: var(--color-meta);
|
1028
|
+
}
|
1029
|
+
@media screen and (max-width: 500px) {
|
1030
|
+
.l_header .m_search .icon {
|
1031
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1032
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1033
|
+
display: none;
|
1034
|
+
}
|
1035
|
+
}
|
1036
|
+
.l_header .m_search .input {
|
1037
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1038
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1039
|
+
display: block;
|
1040
|
+
padding-top: 8px;
|
1041
|
+
padding-bottom: 8px;
|
1042
|
+
line-height: 1.3;
|
1043
|
+
width: 100%;
|
1044
|
+
color: var(--color-text);
|
1045
|
+
background: #ffe6ee;
|
1046
|
+
box-shadow: none;
|
1047
|
+
-webkit-box-shadow: none;
|
1048
|
+
box-sizing: border-box;
|
1049
|
+
-webkit-box-sizing: border-box;
|
1050
|
+
-moz-box-sizing: border-box;
|
1051
|
+
padding-left: 40px;
|
1052
|
+
font-size: 0.875rem;
|
1053
|
+
border-radius: 8px;
|
1054
|
+
-webkit-border-radius: 8px;
|
1055
|
+
border: none;
|
1056
|
+
transition: all 0.28s ease;
|
1057
|
+
-webkit-transition: all 0.28s ease;
|
1058
|
+
-khtml-transition: all 0.28s ease;
|
1059
|
+
-moz-transition: all 0.28s ease;
|
1060
|
+
-o-transition: all 0.28s ease;
|
1061
|
+
-ms-transition: all 0.28s ease;
|
1062
|
+
}
|
1063
|
+
@media screen and (min-width: 500px) {
|
1064
|
+
.l_header .m_search .input:focus {
|
1065
|
+
box-shadow: 0 4px 8px 0px rgba(0,0,0,0.1);
|
1066
|
+
-webkit-box-shadow: 0 4px 8px 0px rgba(0,0,0,0.1);
|
1067
|
+
}
|
1068
|
+
}
|
1069
|
+
@media screen and (max-width: 500px) {
|
1070
|
+
.l_header .m_search .input {
|
1071
|
+
background: var(--color-block);
|
1072
|
+
padding-left: 8px;
|
1073
|
+
border: none;
|
1074
|
+
}
|
1075
|
+
.l_header .m_search .input:hover,
|
1076
|
+
.l_header .m_search .input:focus {
|
1077
|
+
border: none;
|
1078
|
+
}
|
1079
|
+
}
|
1080
|
+
@media (max-width: 500px) {
|
1081
|
+
.l_header .m_search {
|
1082
|
+
left: 0;
|
1083
|
+
width: 0;
|
1084
|
+
overflow: hidden;
|
1085
|
+
position: absolute;
|
1086
|
+
background: #fff;
|
1087
|
+
transition: all 0.28s ease;
|
1088
|
+
-webkit-transition: all 0.28s ease;
|
1089
|
+
-khtml-transition: all 0.28s ease;
|
1090
|
+
-moz-transition: all 0.28s ease;
|
1091
|
+
-o-transition: all 0.28s ease;
|
1092
|
+
-ms-transition: all 0.28s ease;
|
1093
|
+
}
|
1094
|
+
.l_header .m_search .input {
|
1095
|
+
border-radius: 32px;
|
1096
|
+
-webkit-border-radius: 32px;
|
1097
|
+
margin-left: 16px;
|
1098
|
+
padding-left: 16px;
|
1099
|
+
}
|
1100
|
+
.l_header.z_search-open .m_search {
|
1101
|
+
width: 100%;
|
1102
|
+
}
|
1103
|
+
.l_header.z_search-open .m_search .input {
|
1104
|
+
width: calc(100% - 120px);
|
1105
|
+
}
|
1106
|
+
}
|
1107
|
+
ul.m-pc >li>a {
|
1108
|
+
color: inherit;
|
1109
|
+
border-bottom: 2px solid transparent;
|
1110
|
+
}
|
1111
|
+
ul.m-pc >li>a:active,
|
1112
|
+
ul.m-pc >li>a.active {
|
1113
|
+
border-bottom: 2px solid #fcc;
|
1114
|
+
}
|
1115
|
+
ul.m-pc li:hover >ul.list-v,
|
1116
|
+
ul.list-v li:hover >ul.list-v {
|
1117
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1118
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1119
|
+
display: block;
|
1120
|
+
}
|
1121
|
+
ul.nav-list-h {
|
1122
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1123
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1124
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
1125
|
+
display: -webkit-flex /* NEW - Chrome */;
|
1126
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
1127
|
+
display: flex;
|
1128
|
+
align-items: stretch;
|
1129
|
+
}
|
1130
|
+
ul.nav-list-h>li {
|
1131
|
+
position: relative;
|
1132
|
+
justify-content: center;
|
1133
|
+
-webkit-justify-content: center;
|
1134
|
+
-khtml-justify-content: center;
|
1135
|
+
-moz-justify-content: center;
|
1136
|
+
-o-justify-content: center;
|
1137
|
+
-ms-justify-content: center;
|
1138
|
+
height: 100%;
|
1139
|
+
line-height: 2.4;
|
1140
|
+
border-radius: 4px;
|
1141
|
+
-webkit-border-radius: 4px;
|
1142
|
+
}
|
1143
|
+
ul.nav-list-h>li >a {
|
1144
|
+
-webkit-font-smoothing: antialiased;
|
1145
|
+
-moz-osx-font-smoothing: grayscale;
|
1146
|
+
font-weight: 600;
|
1147
|
+
}
|
1148
|
+
ul.list-v {
|
1149
|
+
z-index: 1;
|
1150
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1151
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1152
|
+
display: none;
|
1153
|
+
position: absolute;
|
1154
|
+
background: var(--color-card);
|
1155
|
+
box-shadow: 0 2px 4px 0px rgba(0,0,0,0.08), 0 4px 8px 0px rgba(0,0,0,0.08), 0 8px 16px 0px rgba(0,0,0,0.08);
|
1156
|
+
-webkit-box-shadow: 0 2px 4px 0px rgba(0,0,0,0.08), 0 4px 8px 0px rgba(0,0,0,0.08), 0 8px 16px 0px rgba(0,0,0,0.08);
|
1157
|
+
margin-top: -6px;
|
1158
|
+
border-radius: 4px;
|
1159
|
+
-webkit-border-radius: 4px;
|
1160
|
+
padding: 8px 0;
|
1161
|
+
}
|
1162
|
+
ul.list-v.show {
|
1163
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1164
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1165
|
+
display: block;
|
1166
|
+
}
|
1167
|
+
ul.list-v hr {
|
1168
|
+
margin-top: 8px;
|
1169
|
+
margin-bottom: 8px;
|
1170
|
+
}
|
1171
|
+
ul.list-v >li {
|
1172
|
+
white-space: nowrap;
|
1173
|
+
word-break: keep-all;
|
1174
|
+
}
|
1175
|
+
ul.list-v >li.header {
|
1176
|
+
font-size: 0.78125rem;
|
1177
|
+
font-weight: bold;
|
1178
|
+
line-height: 2em;
|
1179
|
+
color: var(--color-meta);
|
1180
|
+
margin: 8px 16px 4px;
|
1181
|
+
}
|
1182
|
+
ul.list-v >li.header i {
|
1183
|
+
margin-right: 8px;
|
1184
|
+
}
|
1185
|
+
ul.list-v >li ul {
|
1186
|
+
margin-left: 0;
|
1187
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1188
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1189
|
+
display: none;
|
1190
|
+
margin-top: -40px;
|
1191
|
+
}
|
1192
|
+
ul.list-v .aplayer-container {
|
1193
|
+
min-height: 64px;
|
1194
|
+
padding: 6px 16px;
|
1195
|
+
}
|
1196
|
+
ul.list-v >li>a {
|
1197
|
+
transition: all 0.28s ease;
|
1198
|
+
-webkit-transition: all 0.28s ease;
|
1199
|
+
-khtml-transition: all 0.28s ease;
|
1200
|
+
-moz-transition: all 0.28s ease;
|
1201
|
+
-o-transition: all 0.28s ease;
|
1202
|
+
-ms-transition: all 0.28s ease;
|
1203
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1204
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1205
|
+
display: block;
|
1206
|
+
color: var(--color-list);
|
1207
|
+
font-size: 0.875rem;
|
1208
|
+
font-weight: bold;
|
1209
|
+
line-height: 36px;
|
1210
|
+
padding: 0 20px 0 16px;
|
1211
|
+
text-overflow: ellipsis;
|
1212
|
+
margin: 0 4px;
|
1213
|
+
border-radius: 4px;
|
1214
|
+
-webkit-border-radius: 4px;
|
1215
|
+
}
|
1216
|
+
@media screen and (max-width: 1024px) {
|
1217
|
+
ul.list-v >li>a {
|
1218
|
+
line-height: 40px;
|
1219
|
+
}
|
1220
|
+
}
|
1221
|
+
ul.list-v >li>a >i {
|
1222
|
+
margin-right: 8px;
|
1223
|
+
}
|
1224
|
+
ul.list-v >li>a:active,
|
1225
|
+
ul.list-v >li>a.active {
|
1226
|
+
color: var(--color-list-hl);
|
1227
|
+
}
|
1228
|
+
ul.list-v >li>a:hover {
|
1229
|
+
color: var(--color-list-hl);
|
1230
|
+
background: var(--color-site-bg);
|
1231
|
+
}
|
1232
|
+
.l_header .menu >ul>li>a {
|
1233
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1234
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1235
|
+
display: block;
|
1236
|
+
padding: 0 8px;
|
1237
|
+
}
|
1238
|
+
.l_header .menu >ul>li>a >i {
|
1239
|
+
margin-right: 4px;
|
1240
|
+
}
|
1241
|
+
.l_header ul.nav-list-h>li {
|
1242
|
+
color: var(--color-list);
|
1243
|
+
line-height: 64px;
|
1244
|
+
}
|
1245
|
+
.l_header ul.nav-list-h>li >a {
|
1246
|
+
max-height: 64px;
|
1247
|
+
overflow: hidden;
|
1248
|
+
color: inherit;
|
1249
|
+
}
|
1250
|
+
.l_header ul.nav-list-h>li >a:active,
|
1251
|
+
.l_header ul.nav-list-h>li >a.active {
|
1252
|
+
color: #fcc;
|
1253
|
+
}
|
1254
|
+
.l_header ul.nav-list-h>li:hover>a {
|
1255
|
+
color: var(--color-list-hl);
|
1256
|
+
}
|
1257
|
+
.l_header ul.nav-list-h>li i.music {
|
1258
|
+
animation: rotate-effect 1.5s linear infinite;
|
1259
|
+
-webkit-animation: rotate-effect 1.5s linear infinite;
|
1260
|
+
-khtml-animation: rotate-effect 1.5s linear infinite;
|
1261
|
+
-moz-animation: rotate-effect 1.5s linear infinite;
|
1262
|
+
-o-animation: rotate-effect 1.5s linear infinite;
|
1263
|
+
-ms-animation: rotate-effect 1.5s linear infinite;
|
1264
|
+
}
|
1265
|
+
@-moz-keyframes rotate-effect {
|
1266
|
+
0% {
|
1267
|
+
transform: rotate(0);
|
1268
|
+
-webkit-transform: rotate(0);
|
1269
|
+
-khtml-transform: rotate(0);
|
1270
|
+
-moz-transform: rotate(0);
|
1271
|
+
-o-transform: rotate(0);
|
1272
|
+
-ms-transform: rotate(0);
|
1273
|
+
}
|
1274
|
+
25% {
|
1275
|
+
transform: rotate(90deg);
|
1276
|
+
-webkit-transform: rotate(90deg);
|
1277
|
+
-khtml-transform: rotate(90deg);
|
1278
|
+
-moz-transform: rotate(90deg);
|
1279
|
+
-o-transform: rotate(90deg);
|
1280
|
+
-ms-transform: rotate(90deg);
|
1281
|
+
}
|
1282
|
+
50% {
|
1283
|
+
transform: rotate(180deg);
|
1284
|
+
-webkit-transform: rotate(180deg);
|
1285
|
+
-khtml-transform: rotate(180deg);
|
1286
|
+
-moz-transform: rotate(180deg);
|
1287
|
+
-o-transform: rotate(180deg);
|
1288
|
+
-ms-transform: rotate(180deg);
|
1289
|
+
}
|
1290
|
+
75% {
|
1291
|
+
transform: rotate(270deg);
|
1292
|
+
-webkit-transform: rotate(270deg);
|
1293
|
+
-khtml-transform: rotate(270deg);
|
1294
|
+
-moz-transform: rotate(270deg);
|
1295
|
+
-o-transform: rotate(270deg);
|
1296
|
+
-ms-transform: rotate(270deg);
|
1297
|
+
}
|
1298
|
+
100% {
|
1299
|
+
transform: rotate(360deg);
|
1300
|
+
-webkit-transform: rotate(360deg);
|
1301
|
+
-khtml-transform: rotate(360deg);
|
1302
|
+
-moz-transform: rotate(360deg);
|
1303
|
+
-o-transform: rotate(360deg);
|
1304
|
+
-ms-transform: rotate(360deg);
|
1305
|
+
}
|
1306
|
+
}
|
1307
|
+
@-webkit-keyframes rotate-effect {
|
1308
|
+
0% {
|
1309
|
+
transform: rotate(0);
|
1310
|
+
-webkit-transform: rotate(0);
|
1311
|
+
-khtml-transform: rotate(0);
|
1312
|
+
-moz-transform: rotate(0);
|
1313
|
+
-o-transform: rotate(0);
|
1314
|
+
-ms-transform: rotate(0);
|
1315
|
+
}
|
1316
|
+
25% {
|
1317
|
+
transform: rotate(90deg);
|
1318
|
+
-webkit-transform: rotate(90deg);
|
1319
|
+
-khtml-transform: rotate(90deg);
|
1320
|
+
-moz-transform: rotate(90deg);
|
1321
|
+
-o-transform: rotate(90deg);
|
1322
|
+
-ms-transform: rotate(90deg);
|
1323
|
+
}
|
1324
|
+
50% {
|
1325
|
+
transform: rotate(180deg);
|
1326
|
+
-webkit-transform: rotate(180deg);
|
1327
|
+
-khtml-transform: rotate(180deg);
|
1328
|
+
-moz-transform: rotate(180deg);
|
1329
|
+
-o-transform: rotate(180deg);
|
1330
|
+
-ms-transform: rotate(180deg);
|
1331
|
+
}
|
1332
|
+
75% {
|
1333
|
+
transform: rotate(270deg);
|
1334
|
+
-webkit-transform: rotate(270deg);
|
1335
|
+
-khtml-transform: rotate(270deg);
|
1336
|
+
-moz-transform: rotate(270deg);
|
1337
|
+
-o-transform: rotate(270deg);
|
1338
|
+
-ms-transform: rotate(270deg);
|
1339
|
+
}
|
1340
|
+
100% {
|
1341
|
+
transform: rotate(360deg);
|
1342
|
+
-webkit-transform: rotate(360deg);
|
1343
|
+
-khtml-transform: rotate(360deg);
|
1344
|
+
-moz-transform: rotate(360deg);
|
1345
|
+
-o-transform: rotate(360deg);
|
1346
|
+
-ms-transform: rotate(360deg);
|
1347
|
+
}
|
1348
|
+
}
|
1349
|
+
@-o-keyframes rotate-effect {
|
1350
|
+
0% {
|
1351
|
+
transform: rotate(0);
|
1352
|
+
-webkit-transform: rotate(0);
|
1353
|
+
-khtml-transform: rotate(0);
|
1354
|
+
-moz-transform: rotate(0);
|
1355
|
+
-o-transform: rotate(0);
|
1356
|
+
-ms-transform: rotate(0);
|
1357
|
+
}
|
1358
|
+
25% {
|
1359
|
+
transform: rotate(90deg);
|
1360
|
+
-webkit-transform: rotate(90deg);
|
1361
|
+
-khtml-transform: rotate(90deg);
|
1362
|
+
-moz-transform: rotate(90deg);
|
1363
|
+
-o-transform: rotate(90deg);
|
1364
|
+
-ms-transform: rotate(90deg);
|
1365
|
+
}
|
1366
|
+
50% {
|
1367
|
+
transform: rotate(180deg);
|
1368
|
+
-webkit-transform: rotate(180deg);
|
1369
|
+
-khtml-transform: rotate(180deg);
|
1370
|
+
-moz-transform: rotate(180deg);
|
1371
|
+
-o-transform: rotate(180deg);
|
1372
|
+
-ms-transform: rotate(180deg);
|
1373
|
+
}
|
1374
|
+
75% {
|
1375
|
+
transform: rotate(270deg);
|
1376
|
+
-webkit-transform: rotate(270deg);
|
1377
|
+
-khtml-transform: rotate(270deg);
|
1378
|
+
-moz-transform: rotate(270deg);
|
1379
|
+
-o-transform: rotate(270deg);
|
1380
|
+
-ms-transform: rotate(270deg);
|
1381
|
+
}
|
1382
|
+
100% {
|
1383
|
+
transform: rotate(360deg);
|
1384
|
+
-webkit-transform: rotate(360deg);
|
1385
|
+
-khtml-transform: rotate(360deg);
|
1386
|
+
-moz-transform: rotate(360deg);
|
1387
|
+
-o-transform: rotate(360deg);
|
1388
|
+
-ms-transform: rotate(360deg);
|
1389
|
+
}
|
1390
|
+
}
|
1391
|
+
@keyframes rotate-effect {
|
1392
|
+
0% {
|
1393
|
+
transform: rotate(0);
|
1394
|
+
-webkit-transform: rotate(0);
|
1395
|
+
-khtml-transform: rotate(0);
|
1396
|
+
-moz-transform: rotate(0);
|
1397
|
+
-o-transform: rotate(0);
|
1398
|
+
-ms-transform: rotate(0);
|
1399
|
+
}
|
1400
|
+
25% {
|
1401
|
+
transform: rotate(90deg);
|
1402
|
+
-webkit-transform: rotate(90deg);
|
1403
|
+
-khtml-transform: rotate(90deg);
|
1404
|
+
-moz-transform: rotate(90deg);
|
1405
|
+
-o-transform: rotate(90deg);
|
1406
|
+
-ms-transform: rotate(90deg);
|
1407
|
+
}
|
1408
|
+
50% {
|
1409
|
+
transform: rotate(180deg);
|
1410
|
+
-webkit-transform: rotate(180deg);
|
1411
|
+
-khtml-transform: rotate(180deg);
|
1412
|
+
-moz-transform: rotate(180deg);
|
1413
|
+
-o-transform: rotate(180deg);
|
1414
|
+
-ms-transform: rotate(180deg);
|
1415
|
+
}
|
1416
|
+
75% {
|
1417
|
+
transform: rotate(270deg);
|
1418
|
+
-webkit-transform: rotate(270deg);
|
1419
|
+
-khtml-transform: rotate(270deg);
|
1420
|
+
-moz-transform: rotate(270deg);
|
1421
|
+
-o-transform: rotate(270deg);
|
1422
|
+
-ms-transform: rotate(270deg);
|
1423
|
+
}
|
1424
|
+
100% {
|
1425
|
+
transform: rotate(360deg);
|
1426
|
+
-webkit-transform: rotate(360deg);
|
1427
|
+
-khtml-transform: rotate(360deg);
|
1428
|
+
-moz-transform: rotate(360deg);
|
1429
|
+
-o-transform: rotate(360deg);
|
1430
|
+
-ms-transform: rotate(360deg);
|
1431
|
+
}
|
1432
|
+
}
|
1433
|
+
.menu-phone li ul.list-v {
|
1434
|
+
right: calc(100% - 0.5 * 16px);
|
1435
|
+
}
|
1436
|
+
.menu-phone li ul.list-v ul {
|
1437
|
+
right: calc(100% - 0.5 * 16px);
|
1438
|
+
}
|
1439
|
+
#wrapper {
|
1440
|
+
max-width: 1080px;
|
1441
|
+
margin: auto;
|
1442
|
+
}
|
1443
|
+
@media screen and (min-width: 2048px) {
|
1444
|
+
#wrapper {
|
1445
|
+
max-width: 55vw;
|
1446
|
+
}
|
1447
|
+
}
|
1448
|
+
#wrapper .menu {
|
1449
|
+
-webkit-box-flex: 1;
|
1450
|
+
-moz-box-flex: 1;
|
1451
|
+
-webkit-flex: 1 1;
|
1452
|
+
-ms-flex: 1 1;
|
1453
|
+
flex: 1 1;
|
1454
|
+
margin: 0 16px 0 0;
|
1455
|
+
}
|
1456
|
+
#wrapper .menu .list-v ul {
|
1457
|
+
left: calc(100% - 0.5 * 16px);
|
1458
|
+
}
|
1459
|
+
.menu-phone {
|
1460
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1461
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1462
|
+
display: none;
|
1463
|
+
margin-top: 16px;
|
1464
|
+
right: 8px;
|
1465
|
+
transition: all 0.28s ease;
|
1466
|
+
-webkit-transition: all 0.28s ease;
|
1467
|
+
-khtml-transition: all 0.28s ease;
|
1468
|
+
-moz-transition: all 0.28s ease;
|
1469
|
+
-o-transition: all 0.28s ease;
|
1470
|
+
-ms-transition: all 0.28s ease;
|
1471
|
+
}
|
1472
|
+
.menu-phone ul {
|
1473
|
+
right: calc(100% - 0.5 * 16px);
|
1474
|
+
}
|
1475
|
+
@media screen and (max-width: 500px) {
|
1476
|
+
.menu-phone {
|
1477
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1478
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1479
|
+
display: block;
|
1480
|
+
}
|
1481
|
+
}
|
1482
|
+
.l_header {
|
1483
|
+
max-width: 65vw;
|
1484
|
+
left: calc((100% - 65vw) * 0.5);
|
1485
|
+
border-bottom-left-radius: 8px;
|
1486
|
+
border-bottom-right-radius: 8px;
|
1487
|
+
}
|
1488
|
+
@media screen and (max-width: 2048px) {
|
1489
|
+
.l_header {
|
1490
|
+
max-width: 1112px;
|
1491
|
+
left: calc((100% - 1112px) * 0.5);
|
1492
|
+
}
|
1493
|
+
}
|
1494
|
+
@media screen and (max-width: 1112px) {
|
1495
|
+
.l_header {
|
1496
|
+
left: 0;
|
1497
|
+
border-radius: 0;
|
1498
|
+
-webkit-border-radius: 0;
|
1499
|
+
max-width: 100%;
|
1500
|
+
}
|
1501
|
+
}
|
1502
|
+
@media screen and (max-width: 500px) {
|
1503
|
+
.l_header .container {
|
1504
|
+
margin-left: 0;
|
1505
|
+
margin-right: 0;
|
1506
|
+
}
|
1507
|
+
.l_header #wrapper .nav-main .title {
|
1508
|
+
padding-left: 16px;
|
1509
|
+
padding-right: 16px;
|
1510
|
+
}
|
1511
|
+
.l_header #wrapper .nav-sub {
|
1512
|
+
width: 100%;
|
1513
|
+
}
|
1514
|
+
.l_header #wrapper .nav-sub .title {
|
1515
|
+
overflow-y: scroll;
|
1516
|
+
margin-top: 2px;
|
1517
|
+
padding: 8px 16px;
|
1518
|
+
}
|
1519
|
+
.l_header #wrapper .switcher {
|
1520
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1521
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1522
|
+
display: -ms-flexbox /* TWEENER - IE 10 */;
|
1523
|
+
display: -webkit-flex /* NEW - Chrome */;
|
1524
|
+
display: flex /* NEW, Spec - Opera 12.1, Firefox 20+ */;
|
1525
|
+
display: flex;
|
1526
|
+
margin-right: 8px;
|
1527
|
+
}
|
1528
|
+
.l_header .menu {
|
1529
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1530
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1531
|
+
display: none;
|
1532
|
+
}
|
1533
|
+
}
|
1534
|
+
@media screen and (max-width: 500px) {
|
1535
|
+
.list-v li {
|
1536
|
+
max-width: 270px;
|
1537
|
+
}
|
1538
|
+
}
|
1539
|
+
#u-search {
|
1540
|
+
display: -webkit-box /* OLD - iOS 6-, Safari 3.1-6 */;
|
1541
|
+
display: -moz-box /* OLD - Firefox 19- (buggy but mostly works) */;
|
1542
|
+
display: none;
|
1543
|
+
position: fixed;
|
1544
|
+
top: 0;
|
1545
|
+
left: 0;
|
1546
|
+
width: 100%;
|
1547
|
+
height: 100%;
|
1548
|
+
padding: 60px 20px;
|
1549
|
+
z-index: 1001;
|
1550
|
+
}
|
1551
|
+
@media screen and (max-width: 680px) {
|
1552
|
+
#u-search {
|
1553
|
+
padding: 0px;
|
1554
|
+
}
|
1555
|
+
}
|
1556
|
+
|
1557
|
+
</style>
|
1558
|
+
<link rel="stylesheet" href="/css/style.css" media="print" onload="this.media='all';this.onload=null">
|
1559
|
+
<noscript><link rel="stylesheet" href="/css/style.css"></noscript>
|
1560
|
+
|
1561
|
+
<script>
|
1562
|
+
if (/*@cc_on!@*/false || (!!window.MSInputMethodContext && !!document.documentMode))
|
1563
|
+
document.write(
|
1564
|
+
'<style>'+
|
1565
|
+
'html{'+
|
1566
|
+
'overflow-x: hidden !important;'+
|
1567
|
+
'overflow-y: hidden !important;'+
|
1568
|
+
'}'+
|
1569
|
+
'.kill-ie{'+
|
1570
|
+
'text-align:center;'+
|
1571
|
+
'height: 100%;'+
|
1572
|
+
'margin-top: 15%;'+
|
1573
|
+
'margin-bottom: 5500%;'+
|
1574
|
+
'}'+
|
1575
|
+
'.kill-t{'+
|
1576
|
+
'font-size: 2rem;'+
|
1577
|
+
'}'+
|
1578
|
+
'.kill-c{'+
|
1579
|
+
'font-size: 1.2rem;'+
|
1580
|
+
'}'+
|
1581
|
+
'#l_header,#l_body{'+
|
1582
|
+
'display: none;'+
|
1583
|
+
'}'+
|
1584
|
+
'</style>'+
|
1585
|
+
'<div class="kill-ie">'+
|
1586
|
+
`<span class="kill-t"><b>抱歉,您的浏览器无法访问本站</b></span><br/>`+
|
1587
|
+
`<span class="kill-c">微软已经于2016年终止了对 Internet Explorer (IE) 10 及更早版本的支持,<br/>继续使用存在极大的安全隐患,请使用当代主流的浏览器进行访问。</span><br/>`+
|
1588
|
+
`<a target="_blank" rel="noopener" href="https://blogs.windows.com/windowsexperience/2021/05/19/the-future-of-internet-explorer-on-windows-10-is-in-microsoft-edge/"><strong>了解详情 ></strong></a>`+
|
1589
|
+
'</div>');
|
1590
|
+
</script>
|
1591
|
+
|
1592
|
+
|
1593
|
+
<noscript>
|
1594
|
+
<style>
|
1595
|
+
html{
|
1596
|
+
overflow-x: hidden !important;
|
1597
|
+
overflow-y: hidden !important;
|
1598
|
+
}
|
1599
|
+
.kill-noscript{
|
1600
|
+
text-align:center;
|
1601
|
+
height: 100%;
|
1602
|
+
margin-top: 15%;
|
1603
|
+
margin-bottom: 5500%;
|
1604
|
+
}
|
1605
|
+
.kill-t{
|
1606
|
+
font-size: 2rem;
|
1607
|
+
}
|
1608
|
+
.kill-c{
|
1609
|
+
font-size: 1.2rem;
|
1610
|
+
}
|
1611
|
+
#l_header,#l_body{
|
1612
|
+
display: none;
|
1613
|
+
}
|
1614
|
+
</style>
|
1615
|
+
<div class="kill-noscript">
|
1616
|
+
<span class="kill-t"><b>抱歉,您的浏览器无法访问本站</b></span><br/>
|
1617
|
+
<span class="kill-c">本页面需要浏览器支持(启用)JavaScript</span><br/>
|
1618
|
+
<a target="_blank" rel="noopener" href="https://www.baidu.com/s?wd=启用JavaScript"><strong>了解详情 ></strong></a>
|
1619
|
+
</div>
|
1620
|
+
</noscript>
|
1621
|
+
|
1622
|
+
|
1623
|
+
<script>
|
1624
|
+
/************这个文件存放不需要重载的全局变量和全局函数*********/
|
1625
|
+
window.volantis = {}; // volantis 全局变量
|
1626
|
+
volantis.debug = "env"; // 调试模式
|
1627
|
+
volantis.dom = {}; // 页面Dom see: /source/js/app.js etc.
|
1628
|
+
|
1629
|
+
volantis.GLOBAL_CONFIG ={
|
1630
|
+
debug: "env",
|
1631
|
+
cdn: {"js":{"app":"/js/app.js","parallax":"/js/plugins/parallax.js","rightMenu":"/js/plugins/rightMenu.js","rightMenus":"/js/plugins/rightMenus.js","sites":"/js/plugins/tags/sites.js","friends":"/js/plugins/tags/friends.js","contributors":"/js/plugins/tags/contributors.js","search":"/js/search/hexo.js"},"css":{"style":"/css/style.css"}},
|
1632
|
+
default: {"avatar":"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/avatar/round/3442075.svg","link":"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/cover/76b86c0226ffd.svg","image":"https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/image/2659360.svg"},
|
1633
|
+
lastupdate: new Date(1702967735790),
|
1634
|
+
sidebar: {
|
1635
|
+
for_page: ["blogger","category","webinfo"],
|
1636
|
+
for_post: ["toc"],
|
1637
|
+
webinfo: {
|
1638
|
+
lastupd: {
|
1639
|
+
enable: true,
|
1640
|
+
friendlyShow: true
|
1641
|
+
},
|
1642
|
+
runtime: {
|
1643
|
+
data: "2022/08/05",
|
1644
|
+
unit: "天"
|
1645
|
+
}
|
1646
|
+
}
|
1647
|
+
},
|
1648
|
+
plugins: {
|
1649
|
+
message: {"enable":true,"css":"https://fastly.jsdelivr.net/npm/volantis-static/libs/izitoast/dist/css/iziToast.min.css","js":"https://fastly.jsdelivr.net/npm/volantis-static/libs/izitoast/dist/js/iziToast.min.js","icon":{"default":"fa-solid fa-info-circle light-blue","quection":"fa-solid fa-question-circle light-blue"},"time":{"default":5000,"quection":20000},"position":"topRight","transitionIn":"bounceInLeft","transitionOut":"fadeOutRight","titleColor":"var(--color-text)","messageColor":"var(--color-text)","backgroundColor":"var(--color-card)","zindex":2147483647,"copyright":{"enable":true,"title":"知识共享许可协议","message":"请遵守 CC BY-NC-SA 4.0 协议。","icon":"far fa-copyright light-blue"},"aplayer":{"enable":true,"play":"fa-solid fa-play","pause":"fa-solid fa-pause"},"rightmenu":{"enable":true,"notice":true}},
|
1650
|
+
fancybox: {"css":"https://fastly.jsdelivr.net/npm/volantis-static/libs/@fancyapps/ui/dist/fancybox.css","js":"https://fastly.jsdelivr.net/npm/volantis-static/libs/@fancyapps/ui/dist/fancybox.umd.js"},
|
1651
|
+
|
1652
|
+
|
1653
|
+
|
1654
|
+
}
|
1655
|
+
}
|
1656
|
+
|
1657
|
+
/******************** volantis.EventListener ********************************/
|
1658
|
+
// 事件监听器 see: /source/js/app.js
|
1659
|
+
volantis.EventListener = {}
|
1660
|
+
// 这里存放pjax切换页面时将被移除的事件监听器
|
1661
|
+
volantis.EventListener.list = []
|
1662
|
+
//构造方法
|
1663
|
+
function volantisEventListener(type, f, ele) {
|
1664
|
+
this.type = type
|
1665
|
+
this.f = f
|
1666
|
+
this.ele = ele
|
1667
|
+
}
|
1668
|
+
// 移除事件监听器
|
1669
|
+
volantis.EventListener.remove = () => {
|
1670
|
+
volantis.EventListener.list.forEach(function (i) {
|
1671
|
+
i.ele.removeEventListener(i.type, i.f, false)
|
1672
|
+
})
|
1673
|
+
volantis.EventListener.list = []
|
1674
|
+
}
|
1675
|
+
/******************** volantis.dom.$ ********************************/
|
1676
|
+
// 注:这里没有选择器,也没有forEach一次只处理一个dom,这里重新封装主题常用的dom方法,返回的是dom对象,对象包含了以下方法,同时保留dom的原生API
|
1677
|
+
function volantisDom(ele) {
|
1678
|
+
if (!ele) ele = document.createElement("div")
|
1679
|
+
this.ele = ele;
|
1680
|
+
// ==============================================================
|
1681
|
+
this.ele.find = (c) => {
|
1682
|
+
let q = this.ele.querySelector(c)
|
1683
|
+
if (q)
|
1684
|
+
return new volantisDom(q)
|
1685
|
+
}
|
1686
|
+
// ==============================================================
|
1687
|
+
this.ele.hasClass = (c) => {
|
1688
|
+
return this.ele.className.match(new RegExp('(\\s|^)' + c + '(\\s|$)'));
|
1689
|
+
}
|
1690
|
+
this.ele.addClass = (c) => {
|
1691
|
+
this.ele.classList.add(c);
|
1692
|
+
return this.ele
|
1693
|
+
}
|
1694
|
+
this.ele.removeClass = (c) => {
|
1695
|
+
this.ele.classList.remove(c);
|
1696
|
+
return this.ele
|
1697
|
+
}
|
1698
|
+
this.ele.toggleClass = (c) => {
|
1699
|
+
if (this.ele.hasClass(c)) {
|
1700
|
+
this.ele.removeClass(c)
|
1701
|
+
} else {
|
1702
|
+
this.ele.addClass(c)
|
1703
|
+
}
|
1704
|
+
return this.ele
|
1705
|
+
}
|
1706
|
+
// ==============================================================
|
1707
|
+
// 参数 r 为 true 表示pjax切换页面时事件监听器将被移除,false不移除
|
1708
|
+
this.ele.on = (c, f, r = 1) => {
|
1709
|
+
this.ele.addEventListener(c, f, false)
|
1710
|
+
if (r) {
|
1711
|
+
volantis.EventListener.list.push(new volantisEventListener(c, f, this.ele))
|
1712
|
+
}
|
1713
|
+
return this.ele
|
1714
|
+
}
|
1715
|
+
this.ele.click = (f, r) => {
|
1716
|
+
this.ele.on("click", f, r)
|
1717
|
+
return this.ele
|
1718
|
+
}
|
1719
|
+
this.ele.scroll = (f, r) => {
|
1720
|
+
this.ele.on("scroll", f, r)
|
1721
|
+
return this.ele
|
1722
|
+
}
|
1723
|
+
// ==============================================================
|
1724
|
+
this.ele.html = (c) => {
|
1725
|
+
// if(c=== undefined){
|
1726
|
+
// return this.ele.innerHTML
|
1727
|
+
// }else{
|
1728
|
+
this.ele.innerHTML = c
|
1729
|
+
return this.ele
|
1730
|
+
// }
|
1731
|
+
}
|
1732
|
+
// ==============================================================
|
1733
|
+
this.ele.hide = (c) => {
|
1734
|
+
this.ele.style.display = "none"
|
1735
|
+
return this.ele
|
1736
|
+
}
|
1737
|
+
this.ele.show = (c) => {
|
1738
|
+
this.ele.style.display = "block"
|
1739
|
+
return this.ele
|
1740
|
+
}
|
1741
|
+
// ==============================================================
|
1742
|
+
return this.ele
|
1743
|
+
}
|
1744
|
+
volantis.dom.$ = (ele) => {
|
1745
|
+
return !!ele ? new volantisDom(ele) : null;
|
1746
|
+
}
|
1747
|
+
/******************** RunItem ********************************/
|
1748
|
+
function RunItem() {
|
1749
|
+
this.list = []; // 存放回调函数
|
1750
|
+
this.start = () => {
|
1751
|
+
for (var i = 0; i < this.list.length; i++) {
|
1752
|
+
this.list[i].run();
|
1753
|
+
}
|
1754
|
+
};
|
1755
|
+
this.push = (fn, name, setRequestAnimationFrame = true) => {
|
1756
|
+
let myfn = fn
|
1757
|
+
if (setRequestAnimationFrame) {
|
1758
|
+
myfn = ()=>{
|
1759
|
+
volantis.requestAnimationFrame(fn)
|
1760
|
+
}
|
1761
|
+
}
|
1762
|
+
var f = new Item(myfn, name);
|
1763
|
+
this.list.push(f);
|
1764
|
+
};
|
1765
|
+
this.remove = (name) =>{
|
1766
|
+
for (let index = 0; index < this.list.length; index++) {
|
1767
|
+
const e = this.list[index];
|
1768
|
+
if (e.name == name) {
|
1769
|
+
this.list.splice(index,1);
|
1770
|
+
}
|
1771
|
+
}
|
1772
|
+
}
|
1773
|
+
// 构造一个可以run的对象
|
1774
|
+
function Item(fn, name) {
|
1775
|
+
// 函数名称
|
1776
|
+
this.name = name || fn.name;
|
1777
|
+
// run方法
|
1778
|
+
this.run = () => {
|
1779
|
+
try {
|
1780
|
+
fn()
|
1781
|
+
} catch (error) {
|
1782
|
+
console.log(error);
|
1783
|
+
}
|
1784
|
+
};
|
1785
|
+
}
|
1786
|
+
}
|
1787
|
+
/******************** Pjax ********************************/
|
1788
|
+
// /layout/_plugins/pjax/index.ejs
|
1789
|
+
// volantis.pjax.send(callBack[,"callBackName"]) 传入pjax:send回调函数
|
1790
|
+
// volantis.pjax.push(callBack[,"callBackName"]) 传入pjax:complete回调函数
|
1791
|
+
// volantis.pjax.error(callBack[,"callBackName"]) 传入pjax:error回调函数
|
1792
|
+
volantis.pjax = {};
|
1793
|
+
volantis.pjax.method = {
|
1794
|
+
complete: new RunItem(),
|
1795
|
+
error: new RunItem(),
|
1796
|
+
send: new RunItem(),
|
1797
|
+
};
|
1798
|
+
volantis.pjax = Object.assign(volantis.pjax, {
|
1799
|
+
push: volantis.pjax.method.complete.push,
|
1800
|
+
error: volantis.pjax.method.error.push,
|
1801
|
+
send: volantis.pjax.method.send.push,
|
1802
|
+
});
|
1803
|
+
/******************** RightMenu ********************************/
|
1804
|
+
// volantis.rightmenu.handle(callBack[,"callBackName"]) 外部菜单项控制
|
1805
|
+
// 可在 volantis.mouseEvent 处获取右键事件
|
1806
|
+
volantis.rightmenu = {};
|
1807
|
+
volantis.rightmenu.method = {
|
1808
|
+
handle: new RunItem(),
|
1809
|
+
}
|
1810
|
+
volantis.rightmenu = Object.assign(volantis.rightmenu, {
|
1811
|
+
handle: volantis.rightmenu.method.handle.push,
|
1812
|
+
});
|
1813
|
+
/******************** Dark Mode ********************************/
|
1814
|
+
// /layout/_partial/scripts/darkmode.ejs
|
1815
|
+
// volantis.dark.mode 当前模式 dark or light
|
1816
|
+
// volantis.dark.toggle() 暗黑模式触发器
|
1817
|
+
// volantis.dark.push(callBack[,"callBackName"]) 传入触发器回调函数
|
1818
|
+
volantis.dark = {};
|
1819
|
+
volantis.dark.method = {
|
1820
|
+
toggle: new RunItem(),
|
1821
|
+
};
|
1822
|
+
volantis.dark = Object.assign(volantis.dark, {
|
1823
|
+
push: volantis.dark.method.toggle.push,
|
1824
|
+
});
|
1825
|
+
/******************** Message ********************************/
|
1826
|
+
// VolantisApp.message
|
1827
|
+
/******************** isMobile ********************************/
|
1828
|
+
// /source/js/app.js
|
1829
|
+
// volantis.isMobile
|
1830
|
+
// volantis.isMobileOld
|
1831
|
+
/********************脚本动态加载函数********************************/
|
1832
|
+
// volantis.js(src, cb) cb 可以传入onload回调函数 或者 JSON对象 例如: volantis.js("src", ()=>{}) 或 volantis.js("src", {defer:true,onload:()=>{}})
|
1833
|
+
// volantis.css(src)
|
1834
|
+
|
1835
|
+
// 返回Promise对象,如下方法同步加载资源,这利于处理文件资源之间的依赖关系,例如:APlayer 需要在 MetingJS 之前加载
|
1836
|
+
// (async () => {
|
1837
|
+
// await volantis.js("...theme.plugins.aplayer.js.aplayer...")
|
1838
|
+
// await volantis.js("...theme.plugins.aplayer.js.meting...")
|
1839
|
+
// })();
|
1840
|
+
|
1841
|
+
// 已经加入了setTimeout
|
1842
|
+
volantis.js = (src, cb) => {
|
1843
|
+
return new Promise(resolve => {
|
1844
|
+
setTimeout(function () {
|
1845
|
+
var HEAD = document.getElementsByTagName("head")[0] || document.documentElement;
|
1846
|
+
var script = document.createElement("script");
|
1847
|
+
script.setAttribute("type", "text/javascript");
|
1848
|
+
if (cb) {
|
1849
|
+
if (JSON.stringify(cb)) {
|
1850
|
+
for (let p in cb) {
|
1851
|
+
if (p == "onload") {
|
1852
|
+
script[p] = () => {
|
1853
|
+
cb[p]()
|
1854
|
+
resolve()
|
1855
|
+
}
|
1856
|
+
} else {
|
1857
|
+
script[p] = cb[p]
|
1858
|
+
script.onload = resolve
|
1859
|
+
}
|
1860
|
+
}
|
1861
|
+
} else {
|
1862
|
+
script.onload = () => {
|
1863
|
+
cb()
|
1864
|
+
resolve()
|
1865
|
+
};
|
1866
|
+
}
|
1867
|
+
} else {
|
1868
|
+
script.onload = resolve
|
1869
|
+
}
|
1870
|
+
script.setAttribute("src", src);
|
1871
|
+
HEAD.appendChild(script);
|
1872
|
+
});
|
1873
|
+
});
|
1874
|
+
}
|
1875
|
+
volantis.css = (src) => {
|
1876
|
+
return new Promise(resolve => {
|
1877
|
+
setTimeout(function () {
|
1878
|
+
var link = document.createElement('link');
|
1879
|
+
link.rel = "stylesheet";
|
1880
|
+
link.href = src;
|
1881
|
+
link.onload = resolve;
|
1882
|
+
document.getElementsByTagName("head")[0].appendChild(link);
|
1883
|
+
});
|
1884
|
+
});
|
1885
|
+
}
|
1886
|
+
/********************按需加载的插件********************************/
|
1887
|
+
// volantis.import.jQuery().then(()=>{})
|
1888
|
+
volantis.import = {
|
1889
|
+
jQuery: () => {
|
1890
|
+
if (typeof jQuery == "undefined") {
|
1891
|
+
return volantis.js("https://fastly.jsdelivr.net/npm/volantis-static/libs/jquery/dist/jquery.min.js")
|
1892
|
+
} else {
|
1893
|
+
return new Promise(resolve => {
|
1894
|
+
resolve()
|
1895
|
+
});
|
1896
|
+
}
|
1897
|
+
}
|
1898
|
+
}
|
1899
|
+
/********************** requestAnimationFrame ********************************/
|
1900
|
+
// 1、requestAnimationFrame 会把每一帧中的所有 DOM 操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。
|
1901
|
+
// 2、在隐藏或不可见的元素中,requestAnimationFrame 将不会进行重绘或回流,这当然就意味着更少的的 cpu,gpu 和内存使用量。
|
1902
|
+
volantis.requestAnimationFrame = (fn)=>{
|
1903
|
+
if (!window.requestAnimationFrame) {
|
1904
|
+
window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame;
|
1905
|
+
}
|
1906
|
+
window.requestAnimationFrame(fn)
|
1907
|
+
}
|
1908
|
+
/************************ layoutHelper *****************************************/
|
1909
|
+
volantis.layoutHelper = (helper, html, opt)=>{
|
1910
|
+
opt = Object.assign({clean:false, pjax:true}, opt)
|
1911
|
+
function myhelper(helper, html, clean) {
|
1912
|
+
volantis.tempDiv = document.createElement("div");
|
1913
|
+
volantis.tempDiv.innerHTML = html;
|
1914
|
+
let layoutHelper = document.querySelector("#layoutHelper-"+helper)
|
1915
|
+
if (layoutHelper) {
|
1916
|
+
if (clean) {
|
1917
|
+
layoutHelper.innerHTML = ""
|
1918
|
+
}
|
1919
|
+
layoutHelper.append(volantis.tempDiv);
|
1920
|
+
}
|
1921
|
+
}
|
1922
|
+
myhelper(helper, html, opt.clean)
|
1923
|
+
if (opt.pjax) {
|
1924
|
+
volantis.pjax.push(()=>{
|
1925
|
+
myhelper(helper, html, opt.clean)
|
1926
|
+
},"layoutHelper-"+helper)
|
1927
|
+
}
|
1928
|
+
}
|
1929
|
+
/****************************** 滚动事件处理 ****************************************/
|
1930
|
+
volantis.scroll = {
|
1931
|
+
engine: new RunItem(),
|
1932
|
+
unengine: new RunItem(),
|
1933
|
+
};
|
1934
|
+
volantis.scroll = Object.assign(volantis.scroll, {
|
1935
|
+
push: volantis.scroll.engine.push,
|
1936
|
+
});
|
1937
|
+
// 滚动条距离顶部的距离
|
1938
|
+
volantis.scroll.getScrollTop = () =>{
|
1939
|
+
let scrollPos;
|
1940
|
+
if (window.pageYOffset) {
|
1941
|
+
scrollPos = window.pageYOffset;
|
1942
|
+
} else if (document.compatMode && document.compatMode != 'BackCompat') {
|
1943
|
+
scrollPos = document.documentElement.scrollTop;
|
1944
|
+
} else if (document.body) {
|
1945
|
+
scrollPos = document.body.scrollTop;
|
1946
|
+
}
|
1947
|
+
return scrollPos;
|
1948
|
+
}
|
1949
|
+
// 使用 requestAnimationFrame 处理滚动事件
|
1950
|
+
// `volantis.scroll.del` 中存储了一个数值, 该数值检测一定时间间隔内滚动条滚动的位移, 数值的检测频率是浏览器的刷新频率. 数值为正数时, 表示向下滚动. 数值为负数时, 表示向上滚动.
|
1951
|
+
volantis.scroll.handleScrollEvents = () => {
|
1952
|
+
volantis.scroll.lastScrollTop = volantis.scroll.getScrollTop()
|
1953
|
+
function loop() {
|
1954
|
+
const scrollTop = volantis.scroll.getScrollTop();
|
1955
|
+
if (volantis.scroll.lastScrollTop !== scrollTop) {
|
1956
|
+
volantis.scroll.del = scrollTop - volantis.scroll.lastScrollTop;
|
1957
|
+
volantis.scroll.lastScrollTop = scrollTop;
|
1958
|
+
// if (volantis.scroll.del > 0) {
|
1959
|
+
// console.log("向下滚动");
|
1960
|
+
// } else {
|
1961
|
+
// console.log("向上滚动");
|
1962
|
+
// }
|
1963
|
+
// 注销过期的unengine未滚动事件
|
1964
|
+
volantis.scroll.unengine.list=[]
|
1965
|
+
volantis.scroll.engine.start();
|
1966
|
+
}else{
|
1967
|
+
volantis.scroll.unengine.start();
|
1968
|
+
}
|
1969
|
+
volantis.requestAnimationFrame(loop)
|
1970
|
+
}
|
1971
|
+
volantis.requestAnimationFrame(loop)
|
1972
|
+
}
|
1973
|
+
volantis.scroll.handleScrollEvents()
|
1974
|
+
volantis.scroll.ele = null;
|
1975
|
+
// 触发页面滚动至目标元素位置
|
1976
|
+
volantis.scroll.to = (ele, option = {}) => {
|
1977
|
+
if (!ele) return;
|
1978
|
+
volantis.scroll.ele = ele;
|
1979
|
+
// 默认配置
|
1980
|
+
opt = {
|
1981
|
+
top: ele.getBoundingClientRect().top + document.documentElement.scrollTop,
|
1982
|
+
behavior: "smooth"
|
1983
|
+
}
|
1984
|
+
// 定义配置
|
1985
|
+
if ("top" in option) {
|
1986
|
+
opt.top = option.top
|
1987
|
+
}
|
1988
|
+
if ("behavior" in option) {
|
1989
|
+
opt.behavior = option.behavior
|
1990
|
+
}
|
1991
|
+
if ("addTop" in option) {
|
1992
|
+
opt.top += option.addTop
|
1993
|
+
}
|
1994
|
+
if (!("observerDic" in option)) {
|
1995
|
+
option.observerDic = 100
|
1996
|
+
}
|
1997
|
+
// 滚动
|
1998
|
+
window.scrollTo(opt);
|
1999
|
+
// 监视器
|
2000
|
+
// 监视并矫正元素滚动到指定位置
|
2001
|
+
// 用于处理 lazyload 引起的 cls 导致的定位失败问题
|
2002
|
+
// option.observer = false
|
2003
|
+
if (option.observer) {
|
2004
|
+
setTimeout(() => {
|
2005
|
+
if (volantis.scroll.ele != ele) {
|
2006
|
+
return
|
2007
|
+
}
|
2008
|
+
volantis.scroll.unengine.push(() => {
|
2009
|
+
let me = ele.getBoundingClientRect().top
|
2010
|
+
if(!(me >= -option.observerDic && me <= option.observerDic)){
|
2011
|
+
volantis.scroll.to(ele, option)
|
2012
|
+
}
|
2013
|
+
volantis.scroll.unengine.remove("unengineObserver")
|
2014
|
+
},"unengineObserver")
|
2015
|
+
},1000)
|
2016
|
+
}
|
2017
|
+
}
|
2018
|
+
/********************** Content Visibility ********************************/
|
2019
|
+
// 见 source/css/first.styl 如果遇到任何问题 删除 .post-story 即可
|
2020
|
+
// 一个元素被声明 content-visibility 属性后 如果元素不在 viewport 中 浏览器不会计算其后代元素样式和属性 从而节省 Style & Layout 耗时
|
2021
|
+
// content-visibility 的副作用: 锚点失效 等等(实验初期 暂不明确), 使用此方法清除样式
|
2022
|
+
volantis.cleanContentVisibility = ()=>{
|
2023
|
+
if (document.querySelector(".post-story")) {
|
2024
|
+
console.log("cleanContentVisibility");
|
2025
|
+
document.querySelectorAll(".post-story").forEach(e=>{
|
2026
|
+
e.classList.remove("post-story")
|
2027
|
+
})
|
2028
|
+
}
|
2029
|
+
}
|
2030
|
+
/******************************************************************************/
|
2031
|
+
/******************************************************************************/
|
2032
|
+
/******************************************************************************/
|
2033
|
+
//图像加载出错时的处理
|
2034
|
+
function errorImgAvatar(img) {
|
2035
|
+
img.src = "https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/avatar/round/3442075.svg";
|
2036
|
+
img.onerror = null;
|
2037
|
+
}
|
2038
|
+
function errorImgCover(img) {
|
2039
|
+
img.src = "https://fastly.jsdelivr.net/npm/volantis-static/media/placeholder/cover/76b86c0226ffd.svg";
|
2040
|
+
img.onerror = null;
|
2041
|
+
}
|
2042
|
+
/******************************************************************************/
|
2043
|
+
</script>
|
2044
|
+
|
2045
|
+
<!-- import head_end begin -->
|
2046
|
+
<!-- import head_end end -->
|
2047
|
+
<!-- Custom Files headEnd begin-->
|
2048
|
+
|
2049
|
+
<!-- Custom Files headEnd end-->
|
2050
|
+
<!-- front-matter head_end begin -->
|
2051
|
+
<!-- front-matter head_end end -->
|
2052
|
+
</head>
|
2053
|
+
<body itemscope itemtype="http://schema.org/WebPage">
|
2054
|
+
<!-- import body_begin begin-->
|
2055
|
+
<!-- import body_begin end-->
|
2056
|
+
<!-- Custom Files bodyBegin begin-->
|
2057
|
+
|
2058
|
+
<!-- Custom Files bodyBegin end-->
|
2059
|
+
<!-- front-matter body_begin begin -->
|
2060
|
+
<!-- front-matter body_begin end -->
|
2061
|
+
<header itemscope itemtype="http://schema.org/WPHeader" id="l_header" class="l_header auto shadow floatable blur " style='opacity: 0' >
|
2062
|
+
<div class='container'>
|
2063
|
+
<div id='wrapper'>
|
2064
|
+
<div class='nav-sub'>
|
2065
|
+
<p class="title"></p>
|
2066
|
+
<ul class='switcher nav-list-h m-phone' id="pjax-header-nav-list">
|
2067
|
+
<li><a id="s-comment" class="fa-solid fa-comments fa-fw" target="_self" href="/" onclick="return false;" title="comment"></a></li>
|
2068
|
+
|
2069
|
+
<li><a id="s-toc" class="s-toc fa-solid fa-list fa-fw" target="_self" href="/" onclick="return false;" title="toc"></a></li>
|
2070
|
+
|
2071
|
+
</ul>
|
2072
|
+
</div>
|
2073
|
+
<div class="nav-main">
|
2074
|
+
|
2075
|
+
|
2076
|
+
<a class="title flat-box" target="_self" href='/'>
|
2077
|
+
|
2078
|
+
|
2079
|
+
|
2080
|
+
Mlikiowa
|
2081
|
+
|
2082
|
+
</a>
|
2083
|
+
|
2084
|
+
|
2085
|
+
<div class='menu navigation'>
|
2086
|
+
<ul class='nav-list-h m-pc'>
|
2087
|
+
|
2088
|
+
|
2089
|
+
|
2090
|
+
|
2091
|
+
|
2092
|
+
<li>
|
2093
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2094
|
+
href="/" title="博客"
|
2095
|
+
|
2096
|
+
|
2097
|
+
|
2098
|
+
active-action="action-home"
|
2099
|
+
>
|
2100
|
+
<i class='fa-solid fa-rss fa-fw'></i>博客
|
2101
|
+
</a>
|
2102
|
+
|
2103
|
+
</li>
|
2104
|
+
|
2105
|
+
|
2106
|
+
|
2107
|
+
|
2108
|
+
|
2109
|
+
<li>
|
2110
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2111
|
+
href="/categories/" title="分类"
|
2112
|
+
|
2113
|
+
|
2114
|
+
|
2115
|
+
active-action="action-categories"
|
2116
|
+
>
|
2117
|
+
<i class='fa-solid fa-folder-open fa-fw'></i>分类
|
2118
|
+
</a>
|
2119
|
+
|
2120
|
+
</li>
|
2121
|
+
|
2122
|
+
|
2123
|
+
|
2124
|
+
|
2125
|
+
|
2126
|
+
<li>
|
2127
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2128
|
+
href="/tags/" title="标签"
|
2129
|
+
|
2130
|
+
|
2131
|
+
|
2132
|
+
active-action="action-tags"
|
2133
|
+
>
|
2134
|
+
<i class='fa-solid fa-tags fa-fw'></i>标签
|
2135
|
+
</a>
|
2136
|
+
|
2137
|
+
</li>
|
2138
|
+
|
2139
|
+
|
2140
|
+
|
2141
|
+
|
2142
|
+
|
2143
|
+
<li>
|
2144
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2145
|
+
href="/archives/" title="归档"
|
2146
|
+
|
2147
|
+
|
2148
|
+
|
2149
|
+
active-action="action-archives"
|
2150
|
+
>
|
2151
|
+
<i class='fa-solid fa-archive fa-fw'></i>归档
|
2152
|
+
</a>
|
2153
|
+
|
2154
|
+
</li>
|
2155
|
+
|
2156
|
+
|
2157
|
+
|
2158
|
+
|
2159
|
+
|
2160
|
+
<li>
|
2161
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2162
|
+
href="/friends/" title="友链"
|
2163
|
+
|
2164
|
+
|
2165
|
+
|
2166
|
+
active-action="action-friends"
|
2167
|
+
>
|
2168
|
+
<i class='fa-solid fa-link fa-fw'></i>友链
|
2169
|
+
</a>
|
2170
|
+
|
2171
|
+
</li>
|
2172
|
+
|
2173
|
+
|
2174
|
+
|
2175
|
+
|
2176
|
+
|
2177
|
+
<li>
|
2178
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2179
|
+
href="/about/" title="关于"
|
2180
|
+
|
2181
|
+
|
2182
|
+
|
2183
|
+
active-action="action-about"
|
2184
|
+
>
|
2185
|
+
<i class='fa-solid fa-info-circle fa-fw'></i>关于
|
2186
|
+
</a>
|
2187
|
+
|
2188
|
+
</li>
|
2189
|
+
|
2190
|
+
|
2191
|
+
|
2192
|
+
</ul>
|
2193
|
+
</div>
|
2194
|
+
|
2195
|
+
<div class="m_search">
|
2196
|
+
<form name="searchform" class="form u-search-form">
|
2197
|
+
<i class="icon fa-solid fa-search fa-fw"></i>
|
2198
|
+
<input type="text" class="input u-search-input" placeholder="Search..." />
|
2199
|
+
</form>
|
2200
|
+
</div>
|
2201
|
+
|
2202
|
+
|
2203
|
+
<ul class='switcher nav-list-h m-phone'>
|
2204
|
+
|
2205
|
+
<li><a class="s-search fa-solid fa-search fa-fw" target="_self" href="/" onclick="return false;" title="search"></a></li>
|
2206
|
+
|
2207
|
+
<li>
|
2208
|
+
<a class="s-menu fa-solid fa-bars fa-fw" target="_self" href="/" onclick="return false;" title="menu"></a>
|
2209
|
+
<ul class="menu-phone list-v navigation white-box">
|
2210
|
+
|
2211
|
+
|
2212
|
+
|
2213
|
+
<li>
|
2214
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2215
|
+
href="/" title="博客"
|
2216
|
+
|
2217
|
+
|
2218
|
+
|
2219
|
+
active-action="action-home"
|
2220
|
+
>
|
2221
|
+
<i class='fa-solid fa-rss fa-fw'></i>博客
|
2222
|
+
</a>
|
2223
|
+
|
2224
|
+
</li>
|
2225
|
+
|
2226
|
+
|
2227
|
+
|
2228
|
+
|
2229
|
+
|
2230
|
+
<li>
|
2231
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2232
|
+
href="/categories/" title="分类"
|
2233
|
+
|
2234
|
+
|
2235
|
+
|
2236
|
+
active-action="action-categories"
|
2237
|
+
>
|
2238
|
+
<i class='fa-solid fa-folder-open fa-fw'></i>分类
|
2239
|
+
</a>
|
2240
|
+
|
2241
|
+
</li>
|
2242
|
+
|
2243
|
+
|
2244
|
+
|
2245
|
+
|
2246
|
+
|
2247
|
+
<li>
|
2248
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2249
|
+
href="/tags/" title="标签"
|
2250
|
+
|
2251
|
+
|
2252
|
+
|
2253
|
+
active-action="action-tags"
|
2254
|
+
>
|
2255
|
+
<i class='fa-solid fa-tags fa-fw'></i>标签
|
2256
|
+
</a>
|
2257
|
+
|
2258
|
+
</li>
|
2259
|
+
|
2260
|
+
|
2261
|
+
|
2262
|
+
|
2263
|
+
|
2264
|
+
<li>
|
2265
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2266
|
+
href="/archives/" title="归档"
|
2267
|
+
|
2268
|
+
|
2269
|
+
|
2270
|
+
active-action="action-archives"
|
2271
|
+
>
|
2272
|
+
<i class='fa-solid fa-archive fa-fw'></i>归档
|
2273
|
+
</a>
|
2274
|
+
|
2275
|
+
</li>
|
2276
|
+
|
2277
|
+
|
2278
|
+
|
2279
|
+
|
2280
|
+
|
2281
|
+
<li>
|
2282
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2283
|
+
href="/friends/" title="友链"
|
2284
|
+
|
2285
|
+
|
2286
|
+
|
2287
|
+
active-action="action-friends"
|
2288
|
+
>
|
2289
|
+
<i class='fa-solid fa-link fa-fw'></i>友链
|
2290
|
+
</a>
|
2291
|
+
|
2292
|
+
</li>
|
2293
|
+
|
2294
|
+
|
2295
|
+
|
2296
|
+
|
2297
|
+
|
2298
|
+
<li>
|
2299
|
+
<a class="menuitem flat-box faa-parent animated-hover"
|
2300
|
+
href="/about/" title="关于"
|
2301
|
+
|
2302
|
+
|
2303
|
+
|
2304
|
+
active-action="action-about"
|
2305
|
+
>
|
2306
|
+
<i class='fa-solid fa-info-circle fa-fw'></i>关于
|
2307
|
+
</a>
|
2308
|
+
|
2309
|
+
</li>
|
2310
|
+
|
2311
|
+
|
2312
|
+
|
2313
|
+
</ul>
|
2314
|
+
</li>
|
2315
|
+
</ul>
|
2316
|
+
|
2317
|
+
<!-- Custom Files header begin -->
|
2318
|
+
|
2319
|
+
<!-- Custom Files header end -->
|
2320
|
+
</div>
|
2321
|
+
</div>
|
2322
|
+
</div>
|
2323
|
+
</header>
|
2324
|
+
|
2325
|
+
<div id="l_body">
|
2326
|
+
<div id="l_cover">
|
2327
|
+
|
2328
|
+
|
2329
|
+
<!-- see: /layout/_partial/scripts/_ctrl/coverCtrl.ejs -->
|
2330
|
+
<div id="half" class='cover-wrapper search' style="display: ;">
|
2331
|
+
|
2332
|
+
<div class='cover-bg lazyload placeholder' data-bg="https://picst.sunbangyan.cn/2023/12/19/e1a85b7ffee8beef520ef52df5c296da.jpeg"></div>
|
2333
|
+
|
2334
|
+
<div class='cover-body'>
|
2335
|
+
<div class='top'>
|
2336
|
+
|
2337
|
+
|
2338
|
+
<p class="title">Mlikiowa Home Village</p>
|
2339
|
+
|
2340
|
+
|
2341
|
+
</div>
|
2342
|
+
<div class='bottom'>
|
2343
|
+
|
2344
|
+
<div class="m_search">
|
2345
|
+
<form name="searchform" class="form u-search-form">
|
2346
|
+
<input type="text" class="input u-search-input" placeholder="A Wonderful Theme for Hexo" />
|
2347
|
+
<i class="icon fa-solid fa-search fa-fw"></i>
|
2348
|
+
</form>
|
2349
|
+
</div>
|
2350
|
+
|
2351
|
+
<div class='menu navigation'>
|
2352
|
+
<div class='list-h'>
|
2353
|
+
|
2354
|
+
|
2355
|
+
<a href="/"
|
2356
|
+
|
2357
|
+
|
2358
|
+
active-action="action-home">
|
2359
|
+
<p>博客</p>
|
2360
|
+
</a>
|
2361
|
+
|
2362
|
+
<a href="/categories/"
|
2363
|
+
|
2364
|
+
|
2365
|
+
target="_self"
|
2366
|
+
|
2367
|
+
active-action="action-categories">
|
2368
|
+
<p>分类</p>
|
2369
|
+
</a>
|
2370
|
+
|
2371
|
+
<a href="/tags/"
|
2372
|
+
|
2373
|
+
|
2374
|
+
active-action="action-tags">
|
2375
|
+
<p>标签</p>
|
2376
|
+
</a>
|
2377
|
+
|
2378
|
+
<a href="/archives/"
|
2379
|
+
|
2380
|
+
|
2381
|
+
active-action="action-archives">
|
2382
|
+
<p>归档</p>
|
2383
|
+
</a>
|
2384
|
+
|
2385
|
+
<a href="/friends/"
|
2386
|
+
|
2387
|
+
|
2388
|
+
active-action="action-friends">
|
2389
|
+
<p>友链</p>
|
2390
|
+
</a>
|
2391
|
+
|
2392
|
+
<a href="/about/"
|
2393
|
+
|
2394
|
+
|
2395
|
+
active-action="action-about">
|
2396
|
+
<p>关于</p>
|
2397
|
+
</a>
|
2398
|
+
|
2399
|
+
|
2400
|
+
</div>
|
2401
|
+
</div>
|
2402
|
+
</div>
|
2403
|
+
</div>
|
2404
|
+
|
2405
|
+
<div id="scroll-down" style="display: none;"><i class="fa fa-chevron-down scroll-down-effects"></i></div>
|
2406
|
+
</div>
|
2407
|
+
|
2408
|
+
|
2409
|
+
</div>
|
2410
|
+
|
2411
|
+
<div id="safearea">
|
2412
|
+
<div class="body-wrapper">
|
2413
|
+
|
2414
|
+
|
2415
|
+
<div id="l_main" class=''>
|
2416
|
+
|
2417
|
+
|
2418
|
+
|
2419
|
+
<section class="post-list">
|
2420
|
+
|
2421
|
+
|
2422
|
+
|
2423
|
+
|
2424
|
+
|
2425
|
+
|
2426
|
+
|
2427
|
+
|
2428
|
+
|
2429
|
+
|
2430
|
+
<div class='post-wrapper'>
|
2431
|
+
<div class="post post-v3 white-box reveal shadow floatable blur" itemscope itemtype="http://schema.org/Article" >
|
2432
|
+
<link itemprop="mainEntityOfPage" href="https://nanaeo.cn/2022/08/13/GaussWave/">
|
2433
|
+
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
|
2434
|
+
<meta itemprop="name" content="Village">
|
2435
|
+
</span>
|
2436
|
+
<span hidden itemprop="post" itemscope itemtype="http://schema.org/Post">
|
2437
|
+
<meta itemprop="name" content="Village">
|
2438
|
+
<meta itemprop="description" content="It is a little blog~">
|
2439
|
+
</span>
|
2440
|
+
|
2441
|
+
|
2442
|
+
|
2443
|
+
<span hidden>
|
2444
|
+
<meta itemprop="image" content="https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png">
|
2445
|
+
</span>
|
2446
|
+
|
2447
|
+
|
2448
|
+
|
2449
|
+
<h2 class="article-title" itemprop="name headline">
|
2450
|
+
<a href="/2022/08/13/GaussWave/" itemprop="url">
|
2451
|
+
高斯滤波
|
2452
|
+
</a>
|
2453
|
+
</h2>
|
2454
|
+
|
2455
|
+
<div class='md article-desc' itemprop="articleBody">
|
2456
|
+
|
2457
|
+
<p>高斯滤波的实现</p>
|
2458
|
+
|
2459
|
+
</div>
|
2460
|
+
|
2461
|
+
<div class='meta-v3' line_style='solid'>
|
2462
|
+
<div>
|
2463
|
+
|
2464
|
+
<time itemprop="dateCreated datePublished" datetime="2022-08-14T00:00:00+08:00">2022-08-14</time>
|
2465
|
+
|
2466
|
+
<span class="dot"></span>
|
2467
|
+
<a class="category-link" href="/categories/DevLog/">DevLog</a>
|
2468
|
+
|
2469
|
+
<span hidden itemprop="about" itemscope itemtype="http://schema.org/Thing">
|
2470
|
+
<a href="/categories/DevLog/" itemprop="url"><span itemprop="name">DevLog</span></a>
|
2471
|
+
</span>
|
2472
|
+
|
2473
|
+
|
2474
|
+
</div>
|
2475
|
+
|
2476
|
+
<div>
|
2477
|
+
<a class='readmore' href='/2022/08/13/GaussWave/' itemprop="url">
|
2478
|
+
阅读全文
|
2479
|
+
</a>
|
2480
|
+
</div>
|
2481
|
+
|
2482
|
+
</div>
|
2483
|
+
|
2484
|
+
|
2485
|
+
</div>
|
2486
|
+
|
2487
|
+
</div>
|
2488
|
+
|
2489
|
+
|
2490
|
+
|
2491
|
+
</section>
|
2492
|
+
|
2493
|
+
|
2494
|
+
|
2495
|
+
|
2496
|
+
|
2497
|
+
|
2498
|
+
|
2499
|
+
</div>
|
2500
|
+
<aside id='l_side' itemscope itemtype="http://schema.org/WPSideBar">
|
2501
|
+
|
2502
|
+
|
2503
|
+
|
2504
|
+
|
2505
|
+
|
2506
|
+
|
2507
|
+
<section class="widget blogger desktop pjax">
|
2508
|
+
<div class='content'>
|
2509
|
+
|
2510
|
+
|
2511
|
+
<a class='avatar flat-box circle' href='/about/'>
|
2512
|
+
<img no-lazy src='https://q1.qlogo.cn/g?b=qq&nk=1627126029&s=100'/>
|
2513
|
+
</a>
|
2514
|
+
|
2515
|
+
|
2516
|
+
|
2517
|
+
<div class='text'>
|
2518
|
+
|
2519
|
+
|
2520
|
+
|
2521
|
+
<p><span id="jinrishici-sentence">Village</span></p>
|
2522
|
+
<script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
|
2523
|
+
|
2524
|
+
</div>
|
2525
|
+
|
2526
|
+
|
2527
|
+
<div class="social-wrapper">
|
2528
|
+
|
2529
|
+
|
2530
|
+
<a href="/atom.xml"
|
2531
|
+
class="social fa-solid fa-rss flat-btn"
|
2532
|
+
target="_blank"
|
2533
|
+
rel="external nofollow noopener noreferrer">
|
2534
|
+
|
2535
|
+
</a>
|
2536
|
+
|
2537
|
+
|
2538
|
+
|
2539
|
+
<a href="mailto:me@xxx.com"
|
2540
|
+
class="social fa-solid fa-envelope flat-btn"
|
2541
|
+
target="_blank"
|
2542
|
+
rel="external nofollow noopener noreferrer">
|
2543
|
+
|
2544
|
+
</a>
|
2545
|
+
|
2546
|
+
|
2547
|
+
|
2548
|
+
<a href="https://github.com/volantis-x/"
|
2549
|
+
class="social fab fa-github flat-btn"
|
2550
|
+
target="_blank"
|
2551
|
+
rel="external nofollow noopener noreferrer">
|
2552
|
+
|
2553
|
+
</a>
|
2554
|
+
|
2555
|
+
|
2556
|
+
|
2557
|
+
<a href="/"
|
2558
|
+
class="social fa-solid fa-headphones-alt flat-btn"
|
2559
|
+
target="_blank"
|
2560
|
+
rel="external nofollow noopener noreferrer">
|
2561
|
+
|
2562
|
+
</a>
|
2563
|
+
|
2564
|
+
|
2565
|
+
</div>
|
2566
|
+
|
2567
|
+
</div>
|
2568
|
+
</section>
|
2569
|
+
|
2570
|
+
|
2571
|
+
|
2572
|
+
|
2573
|
+
|
2574
|
+
|
2575
|
+
|
2576
|
+
|
2577
|
+
|
2578
|
+
<section class="widget category desktop pjax">
|
2579
|
+
|
2580
|
+
<header>
|
2581
|
+
|
2582
|
+
<a href='/blog/categories/'><i class="fa-solid fa-folder-open fa-fw" aria-hidden="true"></i><span class='name'>文章分类</span></a>
|
2583
|
+
|
2584
|
+
</header>
|
2585
|
+
|
2586
|
+
|
2587
|
+
<div class='content'>
|
2588
|
+
<ul class="entry navigation">
|
2589
|
+
|
2590
|
+
<li><a class="flat-box"
|
2591
|
+
title="/categories/DevLog/" href="/categories/DevLog/"
|
2592
|
+
active-action="action-categoriesDevLog"
|
2593
|
+
><div class='name'>DevLog</div><div class='badge'>(1)</div></a></li>
|
2594
|
+
|
2595
|
+
<li><a class="flat-box"
|
2596
|
+
title="/categories/SiteLog/" href="/categories/SiteLog/"
|
2597
|
+
active-action="action-categoriesSiteLog"
|
2598
|
+
><div class='name'>SiteLog</div><div class='badge'>(1)</div></a></li>
|
2599
|
+
|
2600
|
+
</ul>
|
2601
|
+
</div>
|
2602
|
+
</section>
|
2603
|
+
|
2604
|
+
|
2605
|
+
|
2606
|
+
|
2607
|
+
|
2608
|
+
|
2609
|
+
|
2610
|
+
|
2611
|
+
|
2612
|
+
<section class="widget desktop pjax">
|
2613
|
+
|
2614
|
+
<header>
|
2615
|
+
|
2616
|
+
<i class="fa-solid fa-award fa-fw" aria-hidden="true"></i><span class='name'>站点信息</span>
|
2617
|
+
|
2618
|
+
</header>
|
2619
|
+
|
2620
|
+
|
2621
|
+
<div class='content'>
|
2622
|
+
<div class="webinfo">
|
2623
|
+
|
2624
|
+
<div class="webinfo-item">
|
2625
|
+
<div>文章数目:</div>
|
2626
|
+
<div>2 篇</div>
|
2627
|
+
</div>
|
2628
|
+
|
2629
|
+
|
2630
|
+
|
2631
|
+
|
2632
|
+
|
2633
|
+
|
2634
|
+
<div class="webinfo-item">
|
2635
|
+
<div>本站总字数:</div>
|
2636
|
+
<div>3.4k 字</div>
|
2637
|
+
</div>
|
2638
|
+
|
2639
|
+
|
2640
|
+
|
2641
|
+
|
2642
|
+
|
2643
|
+
|
2644
|
+
|
2645
|
+
<div class="webinfo-item">
|
2646
|
+
<div>最后活动时间:</div>
|
2647
|
+
<div id="last-update-show">2023-12-19 日</div>
|
2648
|
+
</div>
|
2649
|
+
|
2650
|
+
</div>
|
2651
|
+
</div>
|
2652
|
+
</section>
|
2653
|
+
|
2654
|
+
|
2655
|
+
|
2656
|
+
|
2657
|
+
|
2658
|
+
<div class="widget-sticky pjax">
|
2659
|
+
|
2660
|
+
</div>
|
2661
|
+
|
2662
|
+
|
2663
|
+
<!-- 没有 pjax 占位会报错 万恶的 pjax -->
|
2664
|
+
|
2665
|
+
<div class="pjax">
|
2666
|
+
<!-- pjax占位 -->
|
2667
|
+
</div>
|
2668
|
+
|
2669
|
+
<div class="pjax">
|
2670
|
+
<!-- pjax占位 -->
|
2671
|
+
</div>
|
2672
|
+
|
2673
|
+
<div class="pjax">
|
2674
|
+
<!-- pjax占位 -->
|
2675
|
+
</div>
|
2676
|
+
|
2677
|
+
<div class="pjax">
|
2678
|
+
<!-- pjax占位 -->
|
2679
|
+
</div>
|
2680
|
+
|
2681
|
+
<div class="pjax">
|
2682
|
+
<!-- pjax占位 -->
|
2683
|
+
</div>
|
2684
|
+
|
2685
|
+
<!-- Custom Files side begin -->
|
2686
|
+
|
2687
|
+
<!-- Custom Files side end -->
|
2688
|
+
</aside>
|
2689
|
+
|
2690
|
+
|
2691
|
+
<!--此文件用来存放一些不方便取值的变量-->
|
2692
|
+
<!--思路大概是将值藏到重加载的区域内-->
|
2693
|
+
|
2694
|
+
<pjax>
|
2695
|
+
<script>
|
2696
|
+
window.pdata={}
|
2697
|
+
pdata.ispage=false;
|
2698
|
+
pdata.commentPath="";
|
2699
|
+
pdata.commentPlaceholder="";
|
2700
|
+
pdata.commentConfig={};
|
2701
|
+
// see: /layout/_partial/scripts/_ctrl/coverCtrl.ejs
|
2702
|
+
|
2703
|
+
// header
|
2704
|
+
var l_header=document.getElementById("l_header");
|
2705
|
+
|
2706
|
+
l_header.classList.remove("show");
|
2707
|
+
|
2708
|
+
|
2709
|
+
// cover
|
2710
|
+
var cover_wrapper=document.querySelector('#l_cover .cover-wrapper');
|
2711
|
+
var scroll_down=document.getElementById('scroll-down');
|
2712
|
+
cover_wrapper.id="half";
|
2713
|
+
cover_wrapper.style.display="";
|
2714
|
+
scroll_down.style.display="none";
|
2715
|
+
|
2716
|
+
|
2717
|
+
</script>
|
2718
|
+
</pjax>
|
2719
|
+
</div>
|
2720
|
+
|
2721
|
+
|
2722
|
+
<footer class="footer clearfix" itemscope itemtype="http://schema.org/WPFooter">
|
2723
|
+
<br><br>
|
2724
|
+
|
2725
|
+
|
2726
|
+
<div class='copyright'>
|
2727
|
+
<p>⌘ Hexo With Volantis</p>
|
2728
|
+
|
2729
|
+
</div>
|
2730
|
+
|
2731
|
+
|
2732
|
+
<!-- Custom Files footer begin-->
|
2733
|
+
|
2734
|
+
<!-- Custom Files footer end-->
|
2735
|
+
</footer>
|
2736
|
+
|
2737
|
+
|
2738
|
+
<a id="s-top" class="fa-solid fa-arrow-up fa-fw" href="/" onclick="return false;" title="top"></a>
|
2739
|
+
</div>
|
2740
|
+
</div>
|
2741
|
+
<div>
|
2742
|
+
<script>
|
2743
|
+
/******************** volantis.dom ********************************/
|
2744
|
+
// 页面选择器 将dom对象缓存起来 see: /source/js/app.js etc.
|
2745
|
+
volantis.dom.bodyAnchor = volantis.dom.$(document.getElementById("safearea")); // 页面主体
|
2746
|
+
volantis.dom.topBtn = volantis.dom.$(document.getElementById('s-top')); // 向上
|
2747
|
+
volantis.dom.wrapper = volantis.dom.$(document.getElementById('wrapper')); // 整个导航栏
|
2748
|
+
volantis.dom.coverAnchor = volantis.dom.$(document.querySelector('#l_cover .cover-wrapper')); // 1个
|
2749
|
+
volantis.dom.switcher = volantis.dom.$(document.querySelector('#l_header .switcher .s-search')); // 搜索按钮 移动端 1个
|
2750
|
+
volantis.dom.header = volantis.dom.$(document.getElementById('l_header')); // 移动端导航栏
|
2751
|
+
volantis.dom.search = volantis.dom.$(document.querySelector('#l_header .m_search')); // 搜索框 桌面端 移动端 1个
|
2752
|
+
volantis.dom.mPhoneList = volantis.dom.$(document.querySelectorAll('#l_header .m-phone .list-v')); // 手机端 子菜单 多个
|
2753
|
+
</script>
|
2754
|
+
|
2755
|
+
<script>
|
2756
|
+
|
2757
|
+
volantis.css("https://fastly.jsdelivr.net/npm/volantis-static/libs/@fortawesome/fontawesome-free/css/all.min.css");
|
2758
|
+
|
2759
|
+
|
2760
|
+
|
2761
|
+
</script>
|
2762
|
+
|
2763
|
+
<!-- required -->
|
2764
|
+
|
2765
|
+
|
2766
|
+
<!-- internal -->
|
2767
|
+
|
2768
|
+
<script src="/js/app.js"></script>
|
2769
|
+
|
2770
|
+
|
2771
|
+
|
2772
|
+
|
2773
|
+
|
2774
|
+
|
2775
|
+
<!-- rightmenu要在darkmode之前(ToggleButton) darkmode要在comments之前(volantis.dark.push)-->
|
2776
|
+
|
2777
|
+
|
2778
|
+
|
2779
|
+
<script>
|
2780
|
+
function loadIssuesJS() {
|
2781
|
+
|
2782
|
+
const sites_api = document.getElementById('sites-api');
|
2783
|
+
if (sites_api != undefined && typeof SitesJS === 'undefined') {
|
2784
|
+
volantis.js("/js/plugins/tags/sites.js")
|
2785
|
+
}
|
2786
|
+
|
2787
|
+
|
2788
|
+
const friends_api = document.getElementById('friends-api');
|
2789
|
+
if (friends_api != undefined && typeof FriendsJS === 'undefined') {
|
2790
|
+
volantis.js("/js/plugins/tags/friends.js")
|
2791
|
+
}
|
2792
|
+
|
2793
|
+
|
2794
|
+
const contributors_api = document.getElementById('contributors-api');
|
2795
|
+
if (contributors_api != undefined && typeof ContributorsJS === 'undefined') {
|
2796
|
+
volantis.js("/js/plugins/tags/contributors.js")
|
2797
|
+
}
|
2798
|
+
|
2799
|
+
};
|
2800
|
+
loadIssuesJS()
|
2801
|
+
volantis.pjax.push(()=>{
|
2802
|
+
loadIssuesJS();
|
2803
|
+
})
|
2804
|
+
|
2805
|
+
</script>
|
2806
|
+
|
2807
|
+
|
2808
|
+
|
2809
|
+
|
2810
|
+
<script defer src="https://fastly.jsdelivr.net/npm/volantis-static/libs/vanilla-lazyload/dist/lazyload.min.js"></script>
|
2811
|
+
<script>
|
2812
|
+
// https://www.npmjs.com/package/vanilla-lazyload
|
2813
|
+
// Set the options globally
|
2814
|
+
// to make LazyLoad self-initialize
|
2815
|
+
window.lazyLoadOptions = {
|
2816
|
+
elements_selector: ".lazyload",
|
2817
|
+
threshold: 0
|
2818
|
+
};
|
2819
|
+
// Listen to the initialization event
|
2820
|
+
// and get the instance of LazyLoad
|
2821
|
+
window.addEventListener(
|
2822
|
+
"LazyLoad::Initialized",
|
2823
|
+
function (event) {
|
2824
|
+
window.lazyLoadInstance = event.detail.instance;
|
2825
|
+
},
|
2826
|
+
false
|
2827
|
+
);
|
2828
|
+
document.addEventListener('DOMContentLoaded', function () {
|
2829
|
+
lazyLoadInstance.update();
|
2830
|
+
});
|
2831
|
+
document.addEventListener('pjax:complete', function () {
|
2832
|
+
lazyLoadInstance.update();
|
2833
|
+
});
|
2834
|
+
</script>
|
2835
|
+
|
2836
|
+
|
2837
|
+
|
2838
|
+
|
2839
|
+
|
2840
|
+
|
2841
|
+
<script>
|
2842
|
+
window.FPConfig = {
|
2843
|
+
delay: 0,
|
2844
|
+
ignoreKeywords: ["#"],
|
2845
|
+
maxRPS: 6,
|
2846
|
+
hoverDelay: 0
|
2847
|
+
};
|
2848
|
+
</script>
|
2849
|
+
<script defer src="https://fastly.jsdelivr.net/npm/volantis-static/libs/flying-pages/flying-pages.min.js"></script>
|
2850
|
+
|
2851
|
+
|
2852
|
+
|
2853
|
+
|
2854
|
+
|
2855
|
+
|
2856
|
+
|
2857
|
+
|
2858
|
+
|
2859
|
+
<script>
|
2860
|
+
volantis.layoutHelper("comments",`<div id="giscus_container"></div>`)
|
2861
|
+
|
2862
|
+
volantis.giscus = {};
|
2863
|
+
|
2864
|
+
function check_giscus() {
|
2865
|
+
if (volantis.dark.mode === "dark") {
|
2866
|
+
volantis.giscus.Theme = 'dark';
|
2867
|
+
} else {
|
2868
|
+
volantis.giscus.Theme = 'light';
|
2869
|
+
}
|
2870
|
+
|
2871
|
+
return document.getElementById("giscus_container");
|
2872
|
+
}
|
2873
|
+
|
2874
|
+
function pjax_giscus() {
|
2875
|
+
const HEAD = check_giscus();
|
2876
|
+
if (!HEAD) return;
|
2877
|
+
let cfg = Object.assign({"theme":{"light":"light","dark":"dark"},"repo":"Mlikiowa/MliKiowa.github.io","repo-id":"R_kgDOHxvLiA","category":"General","category-id":"DIC_kwDOHxvLiM4CQr9N","mapping":"url","reactions-enabled":"1","emit-metadata":"0","lang":"zh-CN"},pdata.commentConfig)
|
2878
|
+
const script = document.createElement('script');
|
2879
|
+
script.setAttribute('src', 'https://giscus.app/client.js');
|
2880
|
+
Object.keys(cfg).forEach(k=>{
|
2881
|
+
if (k != "theme") {
|
2882
|
+
script.setAttribute('data-'+k, cfg[k]);
|
2883
|
+
}
|
2884
|
+
})
|
2885
|
+
script.setAttribute('data-theme', volantis.giscus.Theme);
|
2886
|
+
script.setAttribute('crossorigin', "anonymous");
|
2887
|
+
HEAD.appendChild(script);
|
2888
|
+
}
|
2889
|
+
|
2890
|
+
function dark_giscus() {
|
2891
|
+
const HEAD = check_giscus();
|
2892
|
+
if (!HEAD) return;
|
2893
|
+
|
2894
|
+
const message = {
|
2895
|
+
setConfig: {
|
2896
|
+
theme: volantis.giscus.Theme
|
2897
|
+
}
|
2898
|
+
};
|
2899
|
+
const giscusIframe = document.querySelector('iframe.giscus-frame');
|
2900
|
+
giscusIframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
|
2901
|
+
}
|
2902
|
+
pjax_giscus();
|
2903
|
+
volantis.pjax.push(pjax_giscus);
|
2904
|
+
volantis.dark.push(dark_giscus);
|
2905
|
+
</script>
|
2906
|
+
|
2907
|
+
|
2908
|
+
|
2909
|
+
|
2910
|
+
|
2911
|
+
|
2912
|
+
|
2913
|
+
<!-- optional -->
|
2914
|
+
|
2915
|
+
<script>
|
2916
|
+
const SearchServiceDataPathRoot = ("/" || "/").endsWith("/") ?
|
2917
|
+
"/" || "/" :
|
2918
|
+
"//" || "/";
|
2919
|
+
const SearchServiceDataPath = SearchServiceDataPathRoot + "content.json";
|
2920
|
+
|
2921
|
+
function loadSearchScript() {
|
2922
|
+
// see: layout/_partial/scripts/_ctrl/cdnCtrl.ejs
|
2923
|
+
return volantis.js("/js/search/hexo.js");
|
2924
|
+
}
|
2925
|
+
|
2926
|
+
function loadSearchService() {
|
2927
|
+
loadSearchScript();
|
2928
|
+
document.querySelectorAll(".input.u-search-input").forEach((e) => {
|
2929
|
+
e.removeEventListener("focus", loadSearchService, false);
|
2930
|
+
});
|
2931
|
+
|
2932
|
+
document.querySelectorAll(".u-search-form").forEach((e) => {
|
2933
|
+
e.addEventListener("submit", (event) => {
|
2934
|
+
event.preventDefault();
|
2935
|
+
}, false);
|
2936
|
+
});
|
2937
|
+
}
|
2938
|
+
|
2939
|
+
// 打开并搜索 字符串 s
|
2940
|
+
function OpenSearch(s) {
|
2941
|
+
if (typeof SearchService === 'undefined')
|
2942
|
+
loadSearchScript().then(() => {
|
2943
|
+
SearchService.setQueryText(s);
|
2944
|
+
SearchService.search();
|
2945
|
+
});
|
2946
|
+
else {
|
2947
|
+
SearchService.setQueryText(s);
|
2948
|
+
SearchService.search();
|
2949
|
+
}
|
2950
|
+
}
|
2951
|
+
|
2952
|
+
// 访问含有 ?s=xxx 的链接时打开搜索 // 与搜索引擎 structured data 相关: /scripts/helpers/structured-data/lib/config.js
|
2953
|
+
if (window.location.search && /^\?s=/g.test(window.location.search)) {
|
2954
|
+
let queryText = decodeURI(window.location.search)
|
2955
|
+
.replace(/\ /g, "-")
|
2956
|
+
.replace(/^\?s=/g, "");
|
2957
|
+
OpenSearch(queryText);
|
2958
|
+
}
|
2959
|
+
|
2960
|
+
// 搜索输入框获取焦点时加载搜索
|
2961
|
+
document.querySelectorAll(".input.u-search-input").forEach((e) => {
|
2962
|
+
e.addEventListener("focus", loadSearchService, false);
|
2963
|
+
});
|
2964
|
+
</script>
|
2965
|
+
|
2966
|
+
|
2967
|
+
|
2968
|
+
|
2969
|
+
|
2970
|
+
|
2971
|
+
|
2972
|
+
<script>
|
2973
|
+
|
2974
|
+
|
2975
|
+
|
2976
|
+
function pjax_highlightjs_copyCode(){
|
2977
|
+
if (!(document.querySelector(".highlight .code pre") ||
|
2978
|
+
document.querySelector(".article pre code"))) {
|
2979
|
+
return;
|
2980
|
+
}
|
2981
|
+
VolantisApp.utilCopyCode(".highlight .code pre, .article pre code")
|
2982
|
+
}
|
2983
|
+
volantis.requestAnimationFrame(pjax_highlightjs_copyCode)
|
2984
|
+
volantis.pjax.push(pjax_highlightjs_copyCode)
|
2985
|
+
|
2986
|
+
</script>
|
2987
|
+
|
2988
|
+
|
2989
|
+
|
2990
|
+
|
2991
|
+
|
2992
|
+
|
2993
|
+
|
2994
|
+
|
2995
|
+
|
2996
|
+
|
2997
|
+
|
2998
|
+
|
2999
|
+
<script>
|
3000
|
+
function load_swiper() {
|
3001
|
+
if (!document.querySelectorAll(".swiper-container")[0]) return;
|
3002
|
+
volantis.css("https://fastly.jsdelivr.net/npm/volantis-static/libs/swiper/swiper-bundle.min.css");
|
3003
|
+
volantis.js("https://fastly.jsdelivr.net/npm/volantis-static/libs/swiper/swiper-bundle.min.js").then(() => {
|
3004
|
+
pjax_swiper();
|
3005
|
+
});
|
3006
|
+
}
|
3007
|
+
|
3008
|
+
load_swiper();
|
3009
|
+
|
3010
|
+
function pjax_swiper() {
|
3011
|
+
volantis.swiper = new Swiper('.swiper-container', {
|
3012
|
+
slidesPerView: 'auto',
|
3013
|
+
spaceBetween: 8,
|
3014
|
+
centeredSlides: true,
|
3015
|
+
loop: true,
|
3016
|
+
pagination: {
|
3017
|
+
el: '.swiper-pagination',
|
3018
|
+
clickable: true,
|
3019
|
+
},
|
3020
|
+
navigation: {
|
3021
|
+
nextEl: '.swiper-button-next',
|
3022
|
+
prevEl: '.swiper-button-prev',
|
3023
|
+
},
|
3024
|
+
});
|
3025
|
+
}
|
3026
|
+
|
3027
|
+
volantis.pjax.push(() => {
|
3028
|
+
if (!document.querySelectorAll(".swiper-container")[0]) return;
|
3029
|
+
if (typeof volantis.swiper === "undefined") {
|
3030
|
+
load_swiper();
|
3031
|
+
} else {
|
3032
|
+
pjax_swiper();
|
3033
|
+
}
|
3034
|
+
});
|
3035
|
+
</script>
|
3036
|
+
|
3037
|
+
|
3038
|
+
<!-- pjax 标签必须存在于所有页面 否则 pjax error -->
|
3039
|
+
<pjax>
|
3040
|
+
|
3041
|
+
</pjax>
|
3042
|
+
|
3043
|
+
<script>
|
3044
|
+
function listennSidebarTOC() {
|
3045
|
+
const navItems = document.querySelectorAll(".toc li");
|
3046
|
+
if (!navItems.length) return;
|
3047
|
+
let targets = []
|
3048
|
+
const sections = [...navItems].map((element) => {
|
3049
|
+
const link = element.querySelector(".toc-link");
|
3050
|
+
const target = document.getElementById(
|
3051
|
+
decodeURI(link.getAttribute("href")).replace("#", "")
|
3052
|
+
);
|
3053
|
+
targets.push(target)
|
3054
|
+
// 解除 a 标签 href 的 锚点定位, a 标签 href 的 锚点定位 会随机启用?? 产生错位???
|
3055
|
+
link.setAttribute("onclick","return false;")
|
3056
|
+
link.setAttribute("toc-action","toc-"+decodeURI(link.getAttribute("href")).replace("#", ""))
|
3057
|
+
link.setAttribute("href","/")
|
3058
|
+
// 配置 点击 触发新的锚点定位
|
3059
|
+
link.addEventListener("click", (event) => {
|
3060
|
+
event.preventDefault();
|
3061
|
+
// 这里的 addTop 是通过错位使得 toc 自动展开.
|
3062
|
+
volantis.scroll.to(target,{addTop: 5, observer:true})
|
3063
|
+
// Anchor id
|
3064
|
+
history.pushState(null, document.title, "#" + target.id);
|
3065
|
+
});
|
3066
|
+
return target;
|
3067
|
+
});
|
3068
|
+
|
3069
|
+
function activateNavByIndex(target) {
|
3070
|
+
if (target.classList.contains("active-current")) return;
|
3071
|
+
|
3072
|
+
document.querySelectorAll(".toc .active").forEach((element) => {
|
3073
|
+
element.classList.remove("active", "active-current");
|
3074
|
+
});
|
3075
|
+
target.classList.add("active", "active-current");
|
3076
|
+
let parent = target.parentNode;
|
3077
|
+
while (!parent.matches(".toc")) {
|
3078
|
+
if (parent.matches("li")) parent.classList.add("active");
|
3079
|
+
parent = parent.parentNode;
|
3080
|
+
}
|
3081
|
+
}
|
3082
|
+
|
3083
|
+
// 方案一:
|
3084
|
+
volantis.activateNavIndex=0
|
3085
|
+
activateNavByIndex(navItems[volantis.activateNavIndex])
|
3086
|
+
volantis.scroll.push(()=>{
|
3087
|
+
if (targets[0].getBoundingClientRect().top >= 0) {
|
3088
|
+
volantis.activateNavIndex = 0
|
3089
|
+
}else if (targets[targets.length-1].getBoundingClientRect().top < 0) {
|
3090
|
+
volantis.activateNavIndex = targets.length-1
|
3091
|
+
} else {
|
3092
|
+
for (let index = 0; index < targets.length; index++) {
|
3093
|
+
const target0 = targets[index];
|
3094
|
+
const target1 = targets[(index+1)%targets.length];
|
3095
|
+
if (target0.getBoundingClientRect().top < 0&&target1.getBoundingClientRect().top >= 0) {
|
3096
|
+
volantis.activateNavIndex=index
|
3097
|
+
break;
|
3098
|
+
}
|
3099
|
+
}
|
3100
|
+
}
|
3101
|
+
activateNavByIndex(navItems[volantis.activateNavIndex])
|
3102
|
+
})
|
3103
|
+
|
3104
|
+
// 方案二:
|
3105
|
+
// IntersectionObserver 不是完美精确到像素级别 也不是低延时性的
|
3106
|
+
// function findIndex(entries) {
|
3107
|
+
// let index = 0;
|
3108
|
+
// let entry = entries[index];
|
3109
|
+
// if (entry.boundingClientRect.top > 0) {
|
3110
|
+
// index = sections.indexOf(entry.target);
|
3111
|
+
// return index === 0 ? 0 : index - 1;
|
3112
|
+
// }
|
3113
|
+
// for (; index < entries.length; index++) {
|
3114
|
+
// if (entries[index].boundingClientRect.top <= 0) {
|
3115
|
+
// entry = entries[index];
|
3116
|
+
// } else {
|
3117
|
+
// return sections.indexOf(entry.target);
|
3118
|
+
// }
|
3119
|
+
// }
|
3120
|
+
// return sections.indexOf(entry.target);
|
3121
|
+
// }
|
3122
|
+
// function createIntersectionObserver(marginTop) {
|
3123
|
+
// marginTop = Math.floor(marginTop + 10000);
|
3124
|
+
// let intersectionObserver = new IntersectionObserver(
|
3125
|
+
// (entries, observe) => {
|
3126
|
+
// let scrollHeight = document.documentElement.scrollHeight;
|
3127
|
+
// if (scrollHeight > marginTop) {
|
3128
|
+
// observe.disconnect();
|
3129
|
+
// createIntersectionObserver(scrollHeight);
|
3130
|
+
// return;
|
3131
|
+
// }
|
3132
|
+
// let index = findIndex(entries);
|
3133
|
+
// activateNavByIndex(navItems[index]);
|
3134
|
+
// }, {
|
3135
|
+
// rootMargin: marginTop + "px 0px -100% 0px",
|
3136
|
+
// threshold: 0,
|
3137
|
+
// }
|
3138
|
+
// );
|
3139
|
+
// sections.forEach((element) => {
|
3140
|
+
// element && intersectionObserver.observe(element);
|
3141
|
+
// });
|
3142
|
+
// }
|
3143
|
+
// createIntersectionObserver(document.documentElement.scrollHeight);
|
3144
|
+
}
|
3145
|
+
|
3146
|
+
document.addEventListener("DOMContentLoaded", ()=>{
|
3147
|
+
volantis.requestAnimationFrame(listennSidebarTOC)
|
3148
|
+
});
|
3149
|
+
document.addEventListener("pjax:success", ()=>{
|
3150
|
+
volantis.requestAnimationFrame(listennSidebarTOC)
|
3151
|
+
});
|
3152
|
+
</script>
|
3153
|
+
|
3154
|
+
|
3155
|
+
<script>
|
3156
|
+
try {
|
3157
|
+
// https://web.dev/content-visibility/
|
3158
|
+
// https://www.caniuse.com/?search=content-visibility
|
3159
|
+
// https://infrequently.org/2020/12/content-visibility-scroll-fix/
|
3160
|
+
// https://infrequently.org/2020/12/resize-resilient-deferred-rendering/
|
3161
|
+
|
3162
|
+
// 备注 目前已知的问题:
|
3163
|
+
// 动态修改导致的内容高度变化(例如评论框异步渲染的外部盒子高度变化) 无法提前获知, 进而导致的首次滚动条跳动无法去除 (wontfix) 事实上不使用 content-visibility 也会有跳动, 不过是比使用 content-visibility 跳动提前
|
3164
|
+
// scrollreveal 插件潜在问题 目前尚不明确
|
3165
|
+
|
3166
|
+
let eqIsh = (a, b, fuzz = 2) => {
|
3167
|
+
return Math.abs(a - b) <= fuzz;
|
3168
|
+
};
|
3169
|
+
|
3170
|
+
let rectNotEQ = (a, b) => {
|
3171
|
+
return !eqIsh(a.width, b.width) || !eqIsh(a.height, b.height);
|
3172
|
+
};
|
3173
|
+
|
3174
|
+
// Keep a map of elements and the dimensions of
|
3175
|
+
// their place-holders, re-setting the element's
|
3176
|
+
// intrinsic size when we get updated measurements
|
3177
|
+
// from observers.
|
3178
|
+
let spaced = new WeakMap();
|
3179
|
+
|
3180
|
+
// Only call this when known cheap, post layout
|
3181
|
+
let reserveSpace = (el, rect = el.getClientBoundingRect()) => {
|
3182
|
+
let old = spaced.get(el);
|
3183
|
+
// Set intrinsic size to prevent jumping on un-painting:
|
3184
|
+
// https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override
|
3185
|
+
if (!old || rectNotEQ(old, rect)) {
|
3186
|
+
spaced.set(el, rect);
|
3187
|
+
el.style["contain-intrinsic-size"] = `${rect.width}px ${rect.height}px`;
|
3188
|
+
}
|
3189
|
+
};
|
3190
|
+
|
3191
|
+
let iObs = new IntersectionObserver(
|
3192
|
+
(entries, o) => {
|
3193
|
+
entries.forEach((entry) => {
|
3194
|
+
// We don't care if the element is intersecting or
|
3195
|
+
// has been laid out as our page structure ensures
|
3196
|
+
// they'll get the right width.
|
3197
|
+
reserveSpace(entry.target, entry.boundingClientRect);
|
3198
|
+
});
|
3199
|
+
},
|
3200
|
+
{ rootMargin: "500px 0px 500px 0px" }
|
3201
|
+
);
|
3202
|
+
|
3203
|
+
let rObs = new ResizeObserver((entries, o) => {
|
3204
|
+
entries.forEach((entry) => {
|
3205
|
+
reserveSpace(entry.target, entry.contentRect);
|
3206
|
+
});
|
3207
|
+
});
|
3208
|
+
|
3209
|
+
let resizeResilientDeferredRendering = (Selector) => {
|
3210
|
+
let articles = document.querySelectorAll(Selector);
|
3211
|
+
|
3212
|
+
if (articles.length) {
|
3213
|
+
articles.forEach((el) => {
|
3214
|
+
iObs.observe(el);
|
3215
|
+
rObs.observe(el);
|
3216
|
+
});
|
3217
|
+
|
3218
|
+
// Workaround for Chrome bug, part 2.
|
3219
|
+
//
|
3220
|
+
// Re-enable browser management of rendering for the
|
3221
|
+
// first article after the first paint. Double-rAF
|
3222
|
+
// to ensure we get called after a layout.
|
3223
|
+
requestAnimationFrame(() => {
|
3224
|
+
requestAnimationFrame(() => {
|
3225
|
+
articles[0].style["content-visibility"] = "auto";
|
3226
|
+
});
|
3227
|
+
});
|
3228
|
+
}
|
3229
|
+
};
|
3230
|
+
|
3231
|
+
let contentVisibilityScrollFix = () => {
|
3232
|
+
if (!("content-visibility" in document.documentElement.style)) {
|
3233
|
+
return;
|
3234
|
+
}
|
3235
|
+
resizeResilientDeferredRendering(".post-story");
|
3236
|
+
};
|
3237
|
+
contentVisibilityScrollFix();
|
3238
|
+
volantis.pjax.push(contentVisibilityScrollFix);
|
3239
|
+
} catch (error) {
|
3240
|
+
console.log(error);
|
3241
|
+
}
|
3242
|
+
</script>
|
3243
|
+
|
3244
|
+
|
3245
|
+
|
3246
|
+
<script>
|
3247
|
+
document.onreadystatechange = function () {
|
3248
|
+
if (document.readyState == 'complete') {
|
3249
|
+
// 页面加载完毕 样式加载失败,或是当前网速慢,或是开启了省流模式
|
3250
|
+
const { saveData, effectiveType } = navigator.connection || navigator.mozConnection || navigator.webkitConnection || {}
|
3251
|
+
if (getComputedStyle(document.querySelector("#safearea"), null)["display"] == "none" || saveData || /2g/.test(effectiveType)) {
|
3252
|
+
document.querySelectorAll(".reveal").forEach(function (e) {
|
3253
|
+
e.style["opacity"] = "1";
|
3254
|
+
});
|
3255
|
+
document.querySelector("#safearea").style["display"] = "block";
|
3256
|
+
}
|
3257
|
+
}
|
3258
|
+
}
|
3259
|
+
</script>
|
3260
|
+
|
3261
|
+
|
3262
|
+
<script type="application/ld+json">[{"@context":"http://schema.org","@type":"Organization","name":"Village","url":"https://nanaeo.cn/","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},{"@context":"http://schema.org","@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/","sameAs":["https://github.com/volantis-x"],"description":"It is a little blog~"},{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https://nanaeo.cn/","name":"Village"}},{"@type":"ListItem","position":2,"item":{"@id":"https://nanaeo.cn/tags/Gauss/","name":"Gauss"}}]},{"@context":"http://schema.org","@type":"WebSite","name":"Village","url":"https://nanaeo.cn/","keywords":null,"description":"It is a little blog~","author":{"@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/","description":"It is a little blog~"},"publisher":{"@type":"Organization","name":"Village","url":"https://nanaeo.cn/","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},"potentialAction":{"@type":"SearchAction","name":"Site Search","target":{"@type":"EntryPoint","urlTemplate":"https://nanaeo.cn?s={search_term_string}"},"query-input":"required name=search_term_string"}},{"@context":"http://schema.org","@type":"BlogPosting","description":"It is a little blog~","inLanguage":["zh-CN","en","default"],"mainEntityOfPage":{"@type":"WebPage"},"author":{"@type":"Person","name":"Mlikiowa","image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png"},"url":"https://nanaeo.cn/"},"publisher":{"@type":"Organization","name":"Village","logo":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}},"wordCount":0,"image":{"@type":"ImageObject","url":"https://fastly.jsdelivr.net/npm/volantis-static/media/org.volantis/blog/favicon/android-chrome-192x192.png","width":192,"height":192}}]</script>
|
3263
|
+
|
3264
|
+
|
3265
|
+
|
3266
|
+
|
3267
|
+
<!--
|
3268
|
+
pjax重载区域接口:
|
3269
|
+
1. <pjax></pjax> 标签 pjax 标签必须存在于所有页面 否则 pjax error
|
3270
|
+
2. script[data-pjax]
|
3271
|
+
3. .pjax-reload script
|
3272
|
+
4. .pjax
|
3273
|
+
-->
|
3274
|
+
|
3275
|
+
|
3276
|
+
|
3277
|
+
<script src="https://fastly.jsdelivr.net/npm/volantis-static/libs/pjax/pjax.min.js"></script>
|
3278
|
+
|
3279
|
+
|
3280
|
+
<script>
|
3281
|
+
var pjax;
|
3282
|
+
document.addEventListener('DOMContentLoaded', function () {
|
3283
|
+
pjax = new Pjax({
|
3284
|
+
elements: 'a[href]:not([href^="#"]):not([href="javascript:void(0)"]):not([pjax-fancybox]):not([onclick="return false;"]):not([onclick="return!1"]):not([target="_blank"]):not([target="view_window"]):not([href$=".xml"])',
|
3285
|
+
selectors: [
|
3286
|
+
"head title",
|
3287
|
+
"head meta[name=keywords]",
|
3288
|
+
"head meta[name=description]",
|
3289
|
+
|
3290
|
+
"#l_main",
|
3291
|
+
"#pjax-header-nav-list",
|
3292
|
+
".pjax",
|
3293
|
+
"pjax", // <pjax></pjax> 标签
|
3294
|
+
"script[data-pjax], .pjax-reload script" // script标签添加data-pjax 或 script标签外层添加.pjax-reload 的script代码段重载
|
3295
|
+
],
|
3296
|
+
cacheBust: false, // url 地址追加时间戳,用以避免浏览器缓存
|
3297
|
+
timeout: 5000,
|
3298
|
+
|
3299
|
+
});
|
3300
|
+
});
|
3301
|
+
|
3302
|
+
document.addEventListener('pjax:send', function (e) {
|
3303
|
+
//window.stop(); // 相当于点击了浏览器的停止按钮
|
3304
|
+
|
3305
|
+
try {
|
3306
|
+
var currentUrl = window.location.pathname;
|
3307
|
+
var targetUrl = e.triggerElement.href;
|
3308
|
+
var banUrl = [""];
|
3309
|
+
if (banUrl[0] != "") {
|
3310
|
+
banUrl.forEach(item => {
|
3311
|
+
if(currentUrl.indexOf(item) != -1 || targetUrl.indexOf(item) != -1) {
|
3312
|
+
window.location.href = targetUrl;
|
3313
|
+
}
|
3314
|
+
});
|
3315
|
+
}
|
3316
|
+
} catch (error) {}
|
3317
|
+
|
3318
|
+
// 使用 volantis.pjax.send 方法传入pjax:send回调函数 参见layout/_partial/scripts/global.ejs
|
3319
|
+
volantis.pjax.method.send.start();
|
3320
|
+
});
|
3321
|
+
|
3322
|
+
document.addEventListener('pjax:complete', function () {
|
3323
|
+
// 使用 volantis.pjax.push 方法传入重载函数 参见layout/_partial/scripts/global.ejs
|
3324
|
+
volantis.pjax.method.complete.start();
|
3325
|
+
});
|
3326
|
+
|
3327
|
+
document.addEventListener('pjax:error', function (e) {
|
3328
|
+
if(volantis.debug) {
|
3329
|
+
console.error(e);
|
3330
|
+
console.log('pjax error: \n' + JSON.stringify(e));
|
3331
|
+
}else{
|
3332
|
+
// 使用 volantis.pjax.error 方法传入pjax:error回调函数 参见layout/_partial/scripts/global.ejs
|
3333
|
+
volantis.pjax.method.error.start();
|
3334
|
+
window.location.href = e.triggerElement.href;
|
3335
|
+
}
|
3336
|
+
});
|
3337
|
+
</script>
|
3338
|
+
|
3339
|
+
|
3340
|
+
</div>
|
3341
|
+
<!-- import body_end begin-->
|
3342
|
+
<script data-pjax async src="https://ackee.nanaeo.cn/tracker.js" data-ackee-server="https://ackee.nanaeo.cn" data-ackee-domain-id="3e94aa30-5cea-4f2b-9ec6-c0178d3beb0c"></script>
|
3343
|
+
<script>"serviceWorker"in navigator&&navigator.serviceWorker.register("/volantis-sw.js").then(function(n){n.onupdatefound=function(){var e=n.installing;e.onstatechange=function(){switch(e.state){case"installed":navigator.serviceWorker.controller?console.log("Updated serviceWorker."):console.log("serviceWorker Sucess!");break;case"redundant":console.log("The installing service worker became redundant.")}}}}).catch(function(e){console.log("Error during service worker registration:",e)}); </script>
|
3344
|
+
<!-- import body_end end-->
|
3345
|
+
<!-- Custom Files bodyEnd begin-->
|
3346
|
+
|
3347
|
+
<!-- Custom Files bodyEnd end-->
|
3348
|
+
<!-- front-matter body_end begin -->
|
3349
|
+
<!-- front-matter body_end end -->
|
3350
|
+
</body>
|
3351
|
+
</html>
|