// 只处理 .lazy 类的图片 let index = 0; function loadNextBatch() { var end = Math.min(index + batchSize, images.length); for (let i = index; i < end; i++) { const img = $(images[i]); const newUrl = img.attr("data-original"); // 先清除当前 src,中断旧加载 img.attr("src", ""); // 加载新的地址 setTimeout(() => { img.attr("src", newUrl); img.removeClass("lazy"); // 移除 lazy 类,表示已加载 }, 50); // 稍微延迟加载 } index += batchSize; if (index < images.length) { setTimeout(loadNextBatch, delay); } } loadNextBatch(); } // CDN 切换按钮 $("#btn-cdn").click(function () { $("img").each(function () { const $img = $(this); const origin = $img.attr("data-origin-url"); if (!origin) return; try { const url = new URL(origin, window.location.origin); const cdnUrl = cdnPrefix + url.pathname; $img.attr("data-original", cdnUrl) .attr("src", "/static/images/loading.gif") // 占位图 .addClass("lazy"); // 恢复 lazy 类 } catch (e) { console.error("CDN URL 错误:", origin); } }); forceLoadImagesInBatches(); }); // 原始地址按钮 $("#btn-origin").click(function () { $("img").each(function () { const $img = $(this); const original = $img.attr("data-origin-url"); if (original) { $img.attr("data-original", original) .attr("src", "/static/images/loading.gif") // 占位图 .addClass("lazy"); // 恢复 lazy 类 } }); forceLoadImagesInBatches(); }); // 首次加载图片 forceLoadImagesInBatches(); }); 返回顶部