sinzmise-cetastories-en 2.0.0-1731066589674 → 2.0.0-1731114112886

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.
Files changed (84) hide show
  1. package/archives/2023/12/index.html +3882 -1
  2. package/archives/2023/index.html +3882 -1
  3. package/archives/index.html +3847 -1
  4. package/assets/algolia/algoliasearch.js +7182 -3
  5. package/assets/algolia/algoliasearchLite.js +4445 -3
  6. package/atom.xml +2 -2
  7. package/baidu_verify_codeva-NA6uDlCuZg.html +3960 -1
  8. package/categories/Test/index.html +3885 -1
  9. package/categories/index.html +4014 -1
  10. package/content.json +1 -0
  11. package/css/custom2.css +3 -2
  12. package/css/first.css +1868 -2
  13. package/css/pace/big-counter.css +39 -2
  14. package/css/pace/corner-indicator.css +72 -2
  15. package/css/pace/flash.css +76 -2
  16. package/css/pace/mac-osx.css +86 -2
  17. package/css/pace/pace.css +50 -2
  18. package/css/plane.css +59 -2
  19. package/css/style.css +8570 -2
  20. package/css/tags.css +3516 -2
  21. package/games +57 -15
  22. package/google8073542809160a67.html +3960 -1
  23. package/index.html +3926 -1
  24. package/js/app.js +1341 -2
  25. package/js/autoload.js +62 -2
  26. package/js/ceta/fancybox.css +2 -2
  27. package/js/ceta/fancybox.umd.js +2 -2
  28. package/js/ceta/iconfontInkss.js +1 -2
  29. package/js/ceta/message.css +6 -2
  30. package/js/ceta/message.js +6 -2
  31. package/js/clock.js +1 -2
  32. package/js/kslink.js +38 -2
  33. package/js/newyear.js +76 -2
  34. package/js/plane.js +2200 -2
  35. package/js/plugins/aplayer.js +186 -2
  36. package/js/plugins/parallax.js +191 -2
  37. package/js/plugins/rightMenus.js +623 -2
  38. package/js/plugins/tags/contributors.js +92 -2
  39. package/js/plugins/tags/friends.js +93 -2
  40. package/js/plugins/tags/sites.js +96 -2
  41. package/js/search/algolia.js +239 -2
  42. package/js/search/hexo.js +195 -2
  43. package/js/search/meilisearch.js +220 -2
  44. package/js/txmap.js +248 -2
  45. package/load.html +294 -1
  46. package/package.json +1 -1
  47. package/posts/46521/index.html +4049 -1
  48. package/sw.js +798 -2
  49. package/tags/Test/index.html +3885 -1
  50. package/tags/index.html +3997 -1
  51. package/maps/assets/algolia/algoliasearch.js.map +0 -1
  52. package/maps/assets/algolia/algoliasearchLite.js.map +0 -1
  53. package/maps/css/custom2.css.map +0 -1
  54. package/maps/css/first.css.map +0 -1
  55. package/maps/css/pace/big-counter.css.map +0 -1
  56. package/maps/css/pace/corner-indicator.css.map +0 -1
  57. package/maps/css/pace/flash.css.map +0 -1
  58. package/maps/css/pace/mac-osx.css.map +0 -1
  59. package/maps/css/pace/pace.css.map +0 -1
  60. package/maps/css/plane.css.map +0 -1
  61. package/maps/css/style.css.map +0 -1
  62. package/maps/css/tags.css.map +0 -1
  63. package/maps/js/app.js.map +0 -1
  64. package/maps/js/autoload.js.map +0 -1
  65. package/maps/js/ceta/fancybox.css.map +0 -1
  66. package/maps/js/ceta/fancybox.umd.js.map +0 -1
  67. package/maps/js/ceta/iconfontInkss.js.map +0 -1
  68. package/maps/js/ceta/message.css.map +0 -1
  69. package/maps/js/ceta/message.js.map +0 -1
  70. package/maps/js/clock.js.map +0 -1
  71. package/maps/js/kslink.js.map +0 -1
  72. package/maps/js/newyear.js.map +0 -1
  73. package/maps/js/plane.js.map +0 -1
  74. package/maps/js/plugins/aplayer.js.map +0 -1
  75. package/maps/js/plugins/parallax.js.map +0 -1
  76. package/maps/js/plugins/rightMenus.js.map +0 -1
  77. package/maps/js/plugins/tags/contributors.js.map +0 -1
  78. package/maps/js/plugins/tags/friends.js.map +0 -1
  79. package/maps/js/plugins/tags/sites.js.map +0 -1
  80. package/maps/js/search/algolia.js.map +0 -1
  81. package/maps/js/search/hexo.js.map +0 -1
  82. package/maps/js/search/meilisearch.js.map +0 -1
  83. package/maps/js/txmap.js.map +0 -1
  84. package/maps/sw.js.map +0 -1
@@ -1,2 +1,186 @@
1
- const RightMenuAplayer=(()=>{let e;const a={},l={checkAPlayer:()=>{void 0===e||void 0===a.player?l.setAPlayerObject():void 0===a.observer&&l.setAPlayerObserver()},setAPlayerObject:()=>{let e=document.querySelectorAll(".footer meting-js");0==e.length&&(e=document.querySelectorAll("meting-js")),a.player=void 0,e.forEach(((e,t)=>{e.meta.id==volantis.GLOBAL_CONFIG.plugins.aplayer.id&&e.aplayer&&void 0===a.player&&(a.player=e.aplayer,l.setAPlayerObserver(),l.updateTitle())}))},setAPlayerObserver:()=>{try{a.player.on("play",(function(e){l.updateAPlayerControllerStatus(e),a.status="play"})),a.player.on("pause",(function(e){l.updateAPlayerControllerStatus(e),a.status="pause"})),a.player.on("volumechange",(function(e){l.onUpdateAPlayerVolume(e)})),a.player.on("loadstart",(function(e){l.updateTitle(e)})),a.volumeBarWrap=document.getElementsByClassName("nav volume")[0].children[0],a.volumeBar=a.volumeBarWrap.children[0];const e=e=>{l.updateAPlayerVolume(e)},t=r=>{a.volumeBarWrap.classList.remove("aplayer-volume-bar-wrap-active"),document.removeEventListener("mouseup",t),document.removeEventListener("mousemove",e),l.updateAPlayerVolume(r)};a.volumeBarWrap.addEventListener("mousedown",(l=>{l.stopPropagation(),a.volumeBarWrap.classList.add("aplayer-volume-bar-wrap-active"),document.addEventListener("mousemove",e),document.addEventListener("mouseup",t)})),a.volumeBarWrap.addEventListener("click",(e=>{e.stopPropagation()})),l.updateAPlayerControllerStatus(),l.onUpdateAPlayerVolume(),a.observer=!0}catch(e){console.log(e),a.observer=void 0}},updateAPlayerVolume:e=>{let l=((e.clientX||e.changedTouches[0].clientX)-a.volumeBar.getBoundingClientRect().left)/a.volumeBar.clientWidth;l=Math.max(l,0),l=Math.min(l,1),a.player.volume(l)},onUpdateAPlayerVolume:()=>{try{a.volumeBar.children[0].style.width=100*a.player.audio.volume+"%"}catch(e){console.log(e)}},updateAPlayerControllerStatus:()=>{try{a.player.audio.paused?(e="pause",document.getElementsByClassName("nav toggle")[0].children[0].classList.add("fa-play"),document.getElementsByClassName("nav toggle")[0].children[0].classList.remove("fa-pause")):(e="play",document.getElementsByClassName("nav toggle")[0].children[0].classList.remove("fa-play"),document.getElementsByClassName("nav toggle")[0].children[0].classList.add("fa-pause"))}catch(e){console.log(e)}},aplayerToggle:()=>{l.checkAPlayer();try{a.player.toggle()}catch(e){console.log(e)}},aplayerBackward:()=>{l.checkAPlayer();try{a.player.skipBack(),a.player.play()}catch(e){console.log(e)}},aplayerForward:()=>{l.checkAPlayer();try{a.player.skipForward(),a.player.play()}catch(e){console.log(e)}},aplayerVolume:e=>{l.checkAPlayer();try{a.player.volume(e)}catch(e){console.log(e)}},updateTitle:()=>{l.checkAPlayer();try{const e=a.player.list.index,l=a.player.list.audios[e];document.getElementsByClassName("nav music-title")[0].innerHTML=l.title}catch(e){}}};return{checkAPlayer:l.checkAPlayer,aplayerBackward:l.aplayerBackward,aplayerToggle:l.aplayerToggle,aplayerForward:l.aplayerForward,APlayer:a}})();Object.freeze(RightMenuAplayer),volantis.requestAnimationFrame((()=>{RightMenuAplayer.checkAPlayer()}));
2
- //# sourceMappingURL=../../maps/js/plugins/aplayer.js.map
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
+ });
@@ -1,2 +1,191 @@
1
- let Parallax={options:{}};Parallax.options.speed=.25,Parallax.options.zIndex=-100,Parallax.options.fade=1500,Parallax.slidein=()=>{let a=Parallax.mirrors[0].slider;Parallax.mirrors.length>=2&&(a=Parallax.mirrors[1].slider);var l=parseFloat(a.style.opacity);1!==l?Parallax.mirrors.length>=2?(l+=.1,a.style.opacity=l,setTimeout(Parallax.slidein,Parallax.options.fade/10)):a.style.opacity=1:Parallax.mirrors.length>=2&&(Parallax.mirrors[0].mirror.remove(),Parallax.mirrors.shift())},Parallax.start=()=>{let a=document.createElement("div");a.classList.add("parallax-mirror"),a.style.visibility="hidden",a.style.zIndex=Parallax.options.zIndex,a.style.position="fixed",a.style.top=0,a.style.left=0,a.style.overflow="hidden",Parallax.window.appendChild(a);let l=document.createElement("img");l.src=Parallax.options.src,l.alt="parallax",l.classList.add("parallax-slider"),l.style.opacity=0,a.appendChild(l),Parallax.mirrors||(Parallax.mirrors=[]);let o={};o.mirror=a,o.slider=l,Parallax.mirrors.push(o),Parallax.slidein(),l.addEventListener("load",(function(){Parallax.update()}),!1)},Parallax.init=()=>{function a(){Parallax.wH=document.documentElement.clientHeight,Parallax.wW=document.documentElement.clientWidth}function l(){var a;return window.pageYOffset?a=window.pageYOffset:document.compatMode&&"BackCompat"!=document.compatMode?a=document.documentElement.scrollTop:document.body&&(a=document.body.scrollTop),a}window.addEventListener("resize",(function(){a(),Parallax.update()}),!1),a();let o=-1;!function a(){const t=l();o!==t&&(o=t,function(){const a=l();Parallax.sT=Math.max(0,a),Parallax.sL=Math.max(0,document.body.scrollLeft),Parallax.overScroll=Math.min(a,0)}(),Parallax.update()),window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame,window.requestAnimationFrame(a)}()},Parallax.refreshItem=a=>{Parallax.options.aspectRatio=a.naturalWidth/(a.naturalHeight||1);const l=Parallax.options.aspectRatio||1;Parallax.options.boxWidth=Parallax.window.clientWidth,Parallax.options.boxHeight=Parallax.window.clientHeight,Parallax.options.boxOffsetTop=Parallax.window.scrollTop,Parallax.options.boxOffsetLeft=Parallax.window.scrollLeft,Parallax.options.boxOffsetBottom=Parallax.options.boxOffsetTop+Parallax.options.boxHeight;const o=Parallax.wH,t=Parallax.options.boxOffsetTop,r=Math.max(Parallax.options.boxOffsetTop+Parallax.options.boxHeight-o,0),i=Parallax.options.boxHeight+(t-r)*(1-Parallax.options.speed)|0,e=(Parallax.options.boxOffsetTop-t)*(1-Parallax.options.speed)|0;let s;Parallax.options.boxWidth<i*l?(Parallax.options.imageWidth=i*l|0,Parallax.options.imageHeight=i,Parallax.options.offsetBaseTop=e,s=Parallax.options.imageWidth-Parallax.options.boxWidth,Parallax.options.offsetLeft=-s/2|0):(Parallax.options.imageWidth=Parallax.options.boxWidth,Parallax.options.imageHeight=Parallax.options.boxWidth/l|0,Parallax.options.offsetLeft=0,s=Parallax.options.imageHeight-i,Parallax.options.offsetBaseTop=e-s/2|0)},Parallax.renderItem=(a,l)=>{const o=Parallax.sT,t=Parallax.sL,r=o+Parallax.wH;Parallax.options.boxOffsetBottom>o&&Parallax.options.boxOffsetTop<=r?(Parallax.options.visibility="visible",Parallax.options.mirrorTop=Parallax.options.boxOffsetTop-o,Parallax.options.mirrorLeft=Parallax.options.boxOffsetLeft-t,Parallax.options.offsetTop=Parallax.options.offsetBaseTop-Parallax.options.mirrorTop*(1-Parallax.options.speed)):Parallax.options.visibility="hidden",a.style.transform="translate3d("+Parallax.options.mirrorLeft+"px, "+Parallax.options.mirrorTop+"px, 0px)",a.style.visibility=Parallax.options.visibility,a.style.height=Parallax.options.boxHeight+"px",a.style.width=Parallax.options.boxWidth+"px",l.style.transform="translate3d("+Parallax.options.offsetLeft+"px, "+Parallax.options.offsetTop+"px, 0px)",l.style.position="absolute",l.style.height=Parallax.options.imageHeight+"px",l.style.width=Parallax.options.imageWidth+"px",l.style.maxWidth="none"},Parallax.update=()=>{Parallax.mirrors&&Parallax.mirrors.forEach((a=>{Parallax.refreshItem(a.slider),Parallax.renderItem(a.mirror,a.slider)}))};
2
- //# sourceMappingURL=../../maps/js/plugins/parallax.js.map
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
+ };