@mlikiowa/nanaeo 1.0.1702966759079 → 1.0.1702967739786

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. package/2022/08/04/NewBlog/index.html +3473 -0
  2. package/2022/08/13/GaussWave/index.html +3407 -0
  3. package/about/index.html +3236 -0
  4. package/archives/2022/08/index.html +3411 -0
  5. package/archives/2022/index.html +3411 -0
  6. package/archives/index.html +3308 -0
  7. package/asset/Sotheby.ttf +0 -0
  8. package/asset/backimg.png +0 -0
  9. package/atom.xml +171 -0
  10. package/categories/DevLog/index.html +3351 -0
  11. package/categories/SiteLog/index.html +3351 -0
  12. package/categories/index.html +3174 -0
  13. package/category/devlog/atom.xml +58 -0
  14. package/category/devlog/feed.json +19 -0
  15. package/category/devlog/rss.xml +62 -0
  16. package/category/sitelog/atom.xml +125 -0
  17. package/category/sitelog/feed.json +20 -0
  18. package/category/sitelog/rss.xml +129 -0
  19. package/content.json +1 -0
  20. package/css/Readme.html +9 -0
  21. package/css/first.css +1504 -0
  22. package/css/style.css +7106 -0
  23. package/favicon.ico +0 -0
  24. package/feed.json +31 -0
  25. package/friends/index.html +3661 -0
  26. package/index.html +3421 -0
  27. package/js/app.js +1223 -0
  28. package/js/plugins/aplayer.js +186 -0
  29. package/js/plugins/parallax.js +191 -0
  30. package/js/plugins/rightMenu.js +577 -0
  31. package/js/plugins/rightMenus.js +618 -0
  32. package/js/plugins/tags/contributors.js +92 -0
  33. package/js/plugins/tags/friends.js +93 -0
  34. package/js/plugins/tags/sites.js +96 -0
  35. package/js/search/hexo.js +192 -0
  36. package/package.json +1 -1
  37. package/rss.xml +175 -0
  38. package/tag/devlog/atom.xml +58 -0
  39. package/tag/devlog/feed.json +19 -0
  40. package/tag/devlog/rss.xml +62 -0
  41. package/tag/gauss/atom.xml +58 -0
  42. package/tag/gauss/feed.json +19 -0
  43. package/tag/gauss/rss.xml +62 -0
  44. package/tag/hexo/atom.xml +125 -0
  45. package/tag/hexo/feed.json +20 -0
  46. package/tag/hexo/rss.xml +129 -0
  47. package/tag/hexothemes/atom.xml +125 -0
  48. package/tag/hexothemes/feed.json +20 -0
  49. package/tag/hexothemes/rss.xml +129 -0
  50. package/tag/sitelog/atom.xml +125 -0
  51. package/tag/sitelog/feed.json +20 -0
  52. package/tag/sitelog/rss.xml +129 -0
  53. package/tags/DevLog/index.html +3351 -0
  54. package/tags/Gauss/index.html +3351 -0
  55. package/tags/Hexo/index.html +3351 -0
  56. package/tags/HexoThemes/index.html +3351 -0
  57. package/tags/SiteLog/index.html +3351 -0
  58. package/tags/index.html +3159 -0
  59. package/volantis-sw.js +797 -0
@@ -0,0 +1,186 @@
1
+ /**
2
+ * 右键音乐
3
+ * */
4
+ const RightMenuAplayer = (() => {
5
+ let playStatus; // 播放器状态
6
+ const APlayer = {}; // 右键音乐所控制的播放器
7
+ const fn = {};
8
+
9
+ fn.checkAPlayer = () => {
10
+ if (playStatus === undefined || APlayer.player === undefined) {
11
+ fn.setAPlayerObject();
12
+ } else if (APlayer.observer === undefined) {
13
+ fn.setAPlayerObserver();
14
+ }
15
+ }
16
+
17
+ // 设置全局播放器所对应的 aplyer 对象
18
+ fn.setAPlayerObject = () => {
19
+ let meting = document.querySelectorAll('.footer meting-js');
20
+ if (meting.length == 0) {
21
+ meting = document.querySelectorAll('meting-js');
22
+ }
23
+ APlayer.player = undefined;
24
+ meting.forEach((item, index) => {
25
+ if (item.meta.id == volantis.GLOBAL_CONFIG.plugins.aplayer.id && item.aplayer && APlayer.player === undefined) {
26
+ APlayer.player = item.aplayer;
27
+ fn.setAPlayerObserver();
28
+ fn.updateTitle();
29
+ }
30
+ });
31
+ }
32
+
33
+ // 事件监听
34
+ fn.setAPlayerObserver = () => {
35
+ try {
36
+ APlayer.player.on('play', function (e) {
37
+ fn.updateAPlayerControllerStatus(e);
38
+ APlayer.status = 'play';
39
+ });
40
+ APlayer.player.on('pause', function (e) {
41
+ fn.updateAPlayerControllerStatus(e);
42
+ APlayer.status = 'pause';
43
+ });
44
+ APlayer.player.on('volumechange', function (e) {
45
+ fn.onUpdateAPlayerVolume(e);
46
+ });
47
+ APlayer.player.on('loadstart', function (e) {
48
+ fn.updateTitle(e);
49
+ });
50
+
51
+ // 监听音量手势
52
+ APlayer.volumeBarWrap = document.getElementsByClassName('nav volume')[0].children[0];
53
+ APlayer.volumeBar = APlayer.volumeBarWrap.children[0];
54
+
55
+ const thumbMove = (e) => {
56
+ fn.updateAPlayerVolume(e);
57
+ };
58
+
59
+ const thumbUp = (e) => {
60
+ APlayer.volumeBarWrap.classList.remove('aplayer-volume-bar-wrap-active');
61
+ document.removeEventListener('mouseup', thumbUp);
62
+ document.removeEventListener('mousemove', thumbMove);
63
+ fn.updateAPlayerVolume(e);
64
+ };
65
+
66
+ APlayer.volumeBarWrap.addEventListener('mousedown', (event) => {
67
+ event.stopPropagation();
68
+ APlayer.volumeBarWrap.classList.add('aplayer-volume-bar-wrap-active');
69
+ document.addEventListener('mousemove', thumbMove);
70
+ document.addEventListener('mouseup', thumbUp);
71
+ });
72
+
73
+ APlayer.volumeBarWrap.addEventListener('click', (event) => {
74
+ event.stopPropagation();
75
+ });
76
+
77
+ fn.updateAPlayerControllerStatus();
78
+ fn.onUpdateAPlayerVolume();
79
+ APlayer.observer = true;
80
+ } catch (error) {
81
+ console.log(error);
82
+ APlayer.observer = undefined;
83
+ }
84
+ }
85
+
86
+ fn.updateAPlayerVolume = (e) => {
87
+ let percentage = ((e.clientX || e.changedTouches[0].clientX) -
88
+ APlayer.volumeBar.getBoundingClientRect().left) / APlayer.volumeBar.clientWidth;
89
+ percentage = Math.max(percentage, 0);
90
+ percentage = Math.min(percentage, 1);
91
+ APlayer.player.volume(percentage);
92
+ }
93
+
94
+ fn.onUpdateAPlayerVolume = () => {
95
+ try {
96
+ APlayer.volumeBar.children[0].style.width = APlayer.player.audio.volume * 100 + '%';
97
+ } catch (error) {
98
+ console.log(error);
99
+ }
100
+ }
101
+
102
+ // 更新控制器状态
103
+ fn.updateAPlayerControllerStatus = () => {
104
+ try {
105
+ if (APlayer.player.audio.paused) {
106
+ playStatus = 'pause';
107
+ document.getElementsByClassName('nav toggle')[0].children[0].classList.add('fa-play');
108
+ document.getElementsByClassName('nav toggle')[0].children[0].classList.remove('fa-pause');
109
+ } else {
110
+ playStatus = 'play';
111
+ document.getElementsByClassName('nav toggle')[0].children[0].classList.remove('fa-play');
112
+ document.getElementsByClassName('nav toggle')[0].children[0].classList.add('fa-pause');
113
+ }
114
+ } catch (error) {
115
+ console.log(error);
116
+ }
117
+ }
118
+
119
+ // 播放/暂停
120
+ fn.aplayerToggle = () => {
121
+ fn.checkAPlayer();
122
+ try {
123
+ APlayer.player.toggle();
124
+ } catch (error) {
125
+ console.log(error);
126
+ }
127
+ }
128
+
129
+ // 上一曲
130
+ fn.aplayerBackward = () => {
131
+ fn.checkAPlayer();
132
+ try {
133
+ APlayer.player.skipBack();
134
+ APlayer.player.play();
135
+ } catch (error) {
136
+ console.log(error);
137
+ }
138
+ }
139
+
140
+ // 下一曲
141
+ fn.aplayerForward = () => {
142
+ fn.checkAPlayer();
143
+ try {
144
+ APlayer.player.skipForward();
145
+ APlayer.player.play();
146
+ } catch (error) {
147
+ console.log(error);
148
+ }
149
+ }
150
+
151
+ // 调节音量
152
+ fn.aplayerVolume = (percent) => {
153
+ fn.checkAPlayer();
154
+ try {
155
+ APlayer.player.volume(percent);
156
+ } catch (error) {
157
+ console.log(error);
158
+ }
159
+ }
160
+
161
+ // 更新音乐标题
162
+ fn.updateTitle = () => {
163
+ fn.checkAPlayer();
164
+ try {
165
+ const index = APlayer.player.list.index;
166
+ const obj = APlayer.player.list.audios[index];
167
+ document.getElementsByClassName('nav music-title')[0].innerHTML = obj.title;
168
+ } catch (error) {
169
+ //console.log(error);
170
+ }
171
+ }
172
+
173
+ return {
174
+ checkAPlayer: fn.checkAPlayer,
175
+ aplayerBackward: fn.aplayerBackward,
176
+ aplayerToggle: fn.aplayerToggle,
177
+ aplayerForward: fn.aplayerForward,
178
+ APlayer: APlayer
179
+ }
180
+ })()
181
+
182
+ Object.freeze(RightMenuAplayer);
183
+
184
+ volantis.requestAnimationFrame(() => {
185
+ RightMenuAplayer.checkAPlayer();
186
+ });
@@ -0,0 +1,191 @@
1
+ let Parallax = {};
2
+ Parallax.options = {};
3
+ Parallax.options.speed = 0.25;
4
+ Parallax.options.zIndex = -100;
5
+ Parallax.options.fade = 1500;
6
+ Parallax.slidein = () => {
7
+ let slider = Parallax.mirrors[0].slider;
8
+ if (Parallax.mirrors.length >= 2) {
9
+ slider = Parallax.mirrors[1].slider;
10
+ }
11
+ var opac = parseFloat(slider.style.opacity);
12
+ if (opac !== 1) {
13
+ if (Parallax.mirrors.length >= 2) {
14
+ opac = opac + 0.1;
15
+ slider.style.opacity = opac;
16
+ setTimeout(Parallax.slidein, Parallax.options.fade / 10);
17
+ }else{
18
+ slider.style.opacity = 1;
19
+ }
20
+ } else {
21
+ if (Parallax.mirrors.length >= 2) {
22
+ Parallax.mirrors[0].mirror.remove();
23
+ Parallax.mirrors.shift();
24
+ }
25
+ }
26
+ };
27
+ Parallax.start = () => {
28
+ let mirror = document.createElement("div");
29
+ mirror.classList.add("parallax-mirror");
30
+ mirror.style.visibility = "hidden";
31
+ mirror.style.zIndex = Parallax.options.zIndex;
32
+ mirror.style.position = "fixed";
33
+ mirror.style.top = 0;
34
+ mirror.style.left = 0;
35
+ mirror.style.overflow = "hidden";
36
+ Parallax.window.appendChild(mirror);
37
+ let slider = document.createElement("img");
38
+ slider.src = Parallax.options.src;
39
+ slider.alt = "parallax";
40
+ slider.classList.add("parallax-slider");
41
+ slider.style.opacity = 0;
42
+ mirror.appendChild(slider);
43
+ if (!Parallax.mirrors) {
44
+ Parallax.mirrors = [];
45
+ }
46
+ let mirrorItem = {};
47
+ mirrorItem.mirror = mirror;
48
+ mirrorItem.slider = slider;
49
+ Parallax.mirrors.push(mirrorItem);
50
+ Parallax.slidein();
51
+ slider.addEventListener(
52
+ "load",
53
+ function () {
54
+ Parallax.update();
55
+ },
56
+ false
57
+ );
58
+ };
59
+ Parallax.init = () => {
60
+ function loadDimensions() {
61
+ Parallax.wH = document.documentElement.clientHeight;
62
+ Parallax.wW = document.documentElement.clientWidth;
63
+ }
64
+ function getScrollTop() {
65
+ var scrollPos;
66
+ if (window.pageYOffset) {
67
+ scrollPos = window.pageYOffset;
68
+ } else if (document.compatMode && document.compatMode != "BackCompat") {
69
+ scrollPos = document.documentElement.scrollTop;
70
+ } else if (document.body) {
71
+ scrollPos = document.body.scrollTop;
72
+ }
73
+ return scrollPos;
74
+ }
75
+ function loadScrollPosition() {
76
+ const winScrollTop = getScrollTop();
77
+ Parallax.sT = Math.max(0, winScrollTop);
78
+ Parallax.sL = Math.max(0, document.body.scrollLeft);
79
+ Parallax.overScroll = Math.min(winScrollTop, 0);
80
+ }
81
+ window.addEventListener(
82
+ "resize",
83
+ function () {
84
+ loadDimensions();
85
+ Parallax.update();
86
+ },
87
+ false
88
+ );
89
+ loadDimensions();
90
+ let lastPosition = -1;
91
+ (function loop() {
92
+ const yoffset = getScrollTop();
93
+ if (lastPosition !== yoffset) {
94
+ lastPosition = yoffset;
95
+ loadScrollPosition();
96
+ Parallax.update();
97
+ }
98
+ window.requestAnimationFrame =
99
+ window.requestAnimationFrame ||
100
+ window.mozRequestAnimationFrame ||
101
+ window.webkitRequestAnimationFrame;
102
+ window.requestAnimationFrame(loop);
103
+ })();
104
+ };
105
+
106
+ Parallax.refreshItem = (slider) => {
107
+ Parallax.options.aspectRatio =
108
+ slider.naturalWidth / (slider.naturalHeight || 1);
109
+ const aspect = Parallax.options.aspectRatio || 1;
110
+ Parallax.options.boxWidth = Parallax.window.clientWidth;
111
+ Parallax.options.boxHeight = Parallax.window.clientHeight;
112
+ Parallax.options.boxOffsetTop = Parallax.window.scrollTop;
113
+ Parallax.options.boxOffsetLeft = Parallax.window.scrollLeft;
114
+ Parallax.options.boxOffsetBottom =
115
+ Parallax.options.boxOffsetTop + Parallax.options.boxHeight;
116
+ const winHeight = Parallax.wH;
117
+ const maxOffset = Parallax.options.boxOffsetTop;
118
+ const minOffset = Math.max(
119
+ Parallax.options.boxOffsetTop + Parallax.options.boxHeight - winHeight,
120
+ 0
121
+ );
122
+ const imageHeightMin =
123
+ (Parallax.options.boxHeight +
124
+ (maxOffset - minOffset) * (1 - Parallax.options.speed)) |
125
+ 0;
126
+ const imageOffsetMin =
127
+ ((Parallax.options.boxOffsetTop - maxOffset) *
128
+ (1 - Parallax.options.speed)) |
129
+ 0;
130
+ let margin;
131
+ if (Parallax.options.boxWidth < imageHeightMin * aspect) {
132
+ Parallax.options.imageWidth = (imageHeightMin * aspect) | 0;
133
+ Parallax.options.imageHeight = imageHeightMin;
134
+ Parallax.options.offsetBaseTop = imageOffsetMin;
135
+ margin = Parallax.options.imageWidth - Parallax.options.boxWidth;
136
+ Parallax.options.offsetLeft = (-margin / 2) | 0;
137
+ } else {
138
+ Parallax.options.imageWidth = Parallax.options.boxWidth;
139
+ Parallax.options.imageHeight = (Parallax.options.boxWidth / aspect) | 0;
140
+ Parallax.options.offsetLeft = 0;
141
+ margin = Parallax.options.imageHeight - imageHeightMin;
142
+ Parallax.options.offsetBaseTop = (imageOffsetMin - margin / 2) | 0;
143
+ }
144
+ };
145
+ Parallax.renderItem = (mirror, slider) => {
146
+ const scrollTop = Parallax.sT;
147
+ const scrollLeft = Parallax.sL;
148
+ const scrollBottom = scrollTop + Parallax.wH;
149
+ if (
150
+ Parallax.options.boxOffsetBottom > scrollTop &&
151
+ Parallax.options.boxOffsetTop <= scrollBottom
152
+ ) {
153
+ Parallax.options.visibility = "visible";
154
+ Parallax.options.mirrorTop = Parallax.options.boxOffsetTop - scrollTop;
155
+ Parallax.options.mirrorLeft = Parallax.options.boxOffsetLeft - scrollLeft;
156
+ Parallax.options.offsetTop =
157
+ Parallax.options.offsetBaseTop -
158
+ Parallax.options.mirrorTop * (1 - Parallax.options.speed);
159
+ } else {
160
+ Parallax.options.visibility = "hidden";
161
+ }
162
+ mirror.style.transform =
163
+ "translate3d(" +
164
+ Parallax.options.mirrorLeft +
165
+ "px, " +
166
+ Parallax.options.mirrorTop +
167
+ "px, 0px)";
168
+ mirror.style.visibility = Parallax.options.visibility;
169
+ mirror.style.height = Parallax.options.boxHeight + "px";
170
+ mirror.style.width = Parallax.options.boxWidth + "px";
171
+
172
+ slider.style.transform =
173
+ "translate3d(" +
174
+ Parallax.options.offsetLeft +
175
+ "px, " +
176
+ Parallax.options.offsetTop +
177
+ "px, 0px)";
178
+ slider.style.position = "absolute";
179
+ slider.style.height = Parallax.options.imageHeight + "px";
180
+ slider.style.width = Parallax.options.imageWidth + "px";
181
+ slider.style.maxWidth = "none";
182
+ };
183
+ Parallax.update = () => {
184
+ if (!Parallax.mirrors) {
185
+ return
186
+ }
187
+ Parallax.mirrors.forEach((e) => {
188
+ Parallax.refreshItem(e.slider);
189
+ Parallax.renderItem(e.mirror, e.slider);
190
+ });
191
+ };