aboutsummaryrefslogtreecommitdiff
path: root/src/left_panel.js
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-09-28 18:45:28 +0800
committerMistivia <i@mistivia.com>2025-09-28 18:45:28 +0800
commit78ccdfc3a8324b54f69806df1ac2da2289695002 (patch)
tree3e8a6709d5acfc3a946af9ccd42b3cc2c4d1faed /src/left_panel.js
parenta4d997608556bebd885365b8408fdea544cba94f (diff)
using card thunmb image to save CDN usage
Diffstat (limited to 'src/left_panel.js')
-rw-r--r--src/left_panel.js18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/left_panel.js b/src/left_panel.js
index 2aed1e6..84c55ab 100644
--- a/src/left_panel.js
+++ b/src/left_panel.js
@@ -1,8 +1,10 @@
import { writable } from 'svelte/store';
+import { cardImageUrl } from './utils';
let leftPanelCardId = writable('');
let leftPanelCardDesc = writable('');
let isMobileInfoVisible = writable(false);
+let leftPanelCardImgUrl = writable('');
let curVersion = 0;
let descCache = new Map();
@@ -15,12 +17,27 @@ function closeMobileInfo() {
isMobileInfoVisible.set(false);
}
+function preloadImage(url, callback, errorCallback) {
+ const img = new Image();
+ img.onload = () => {
+ if (typeof callback === 'function') {
+ callback(img);
+ }
+ };
+ img.src = url;
+}
+
+
function setLeftPanelCard(id) {
leftPanelCardId.set(id);
+ leftPanelCardImgUrl.set('');
curVersion += 1;
leftPanelCardDesc.set('加载中...');
let ver = curVersion;
setDesc(ver, id);
+ preloadImage(cardImageUrl(id), () => {
+ leftPanelCardImgUrl.set(cardImageUrl(id));
+ });
}
function setDesc(version, id) {
@@ -54,4 +71,5 @@ export {
showMobileInfo,
closeMobileInfo,
isMobileInfoVisible,
+ leftPanelCardImgUrl,
};