From 71ab61c0aa0f72424fd3ff055c96a6608a1e4815 Mon Sep 17 00:00:00 2001 From: hehh Date: Thu, 17 Jul 2025 19:27:39 +0800 Subject: [PATCH] =?UTF-8?q?perf(moments):=20=E4=BC=98=E5=8C=96=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E5=B2=9B=E5=92=8C=20iframe=20=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 iframe 加载判断,动态调整动态岛收缩时间 - 优化 iframe 源的加载逻辑,减少重复加载 - 移除冗余的 iframe 源清空操作 - 修复后退按钮点击事件 --- js/moments.js | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/js/moments.js b/js/moments.js index 60fc80e..5bb70ca 100644 --- a/js/moments.js +++ b/js/moments.js @@ -1,4 +1,5 @@ $(document).ready(function () { + const iframe = document.getElementById('moment-frame'); function animateDynamicIsland(text = '正在加载...') { const island = document.querySelector('.dynamic-island'); const content = island.querySelector('.content'); @@ -8,36 +9,41 @@ $(document).ready(function () { setTimeout(() => { island.classList.remove('expand'); - }, 2000); // 2秒后收缩 + }, (iframe.src == null || iframe.src === '') ? 2000 : 250); // 2秒后收缩 } function openSimulator(url) { const sim = document.querySelector('.iphone-simulator'); - const iframe = document.getElementById('moment-frame'); + const overlay = document.querySelector('.overlay'); const skeleton = document.querySelector('.skeleton'); - const browserView = document.querySelector('.browser-view'); - sim.style.display = 'block'; - document.querySelector('.overlay').style.display = 'block'; + overlay.style.display = 'block'; + if (iframe.src == null || iframe.src === '' || iframe.src !== url) { + const browserView = document.querySelector('.browser-view'); + iframe.src = url; - iframe.src = url; + iframe.onload = () => { + setTimeout(() => { + skeleton.style.display = 'none'; + browserView.classList.add('loaded'); + }, 300); // 延迟更自然 + }; + } else { + skeleton.style.display = 'none'; + } - iframe.onload = () => { - setTimeout(() => { - skeleton.style.display = 'none'; - browserView.classList.add('loaded'); - }, 300); // 延迟更自然 - }; } + + // 处理瞬间链接点击事件 $('.moments-link').on('click', function (e) { e.preventDefault(); // 阻止默认跳转 // 获取链接地址 - var url = "https://moments.hehouhui.cn"; + const url = "https://moments.hehouhui.cn"; // 判断是否是移动端 - var isMobile = /iPhone|Android/i.test(navigator.userAgent); + const isMobile = /iPhone|Android/i.test(navigator.userAgent); if (isMobile) { // 移动端:直接跳转 @@ -54,7 +60,6 @@ $(document).ready(function () { $('.iphone-simulator').hide(); $('.overlay').hide(); $('.iphone-simulator').removeClass('visible'); - $('#moment-frame').attr('src', ''); // 清空iframe内容 }); // 遮罩层点击事件 点击空白处关闭模拟器 @@ -62,10 +67,8 @@ $(document).ready(function () { $(this).hide(); $('.iphone-simulator').hide(); $('.iphone-simulator').removeClass('visible'); - $('#moment-frame').attr('src', ''); }); - const iframe = document.getElementById('moment-frame'); document.querySelector('.back-btn').addEventListener('click', () => { try { // 安全地尝试让 iframe 内部回退