/** * 博客文章功能 - 获取并展示博客最新文章 */ (function () { 'use strict'; const BLOG_API_URL = 'https://blog.iletter.top/api/posts'; const BLOG_TOKEN = '67192cda-156a-415a-9f3c-97e90a6b818a'; const PAGE_SIZE = 10; let currentPage = 1; let hasMore = true; let isLoading = false; // DOM 元素 const blogPostsBtn = document.getElementById('blog-posts-btn'); const blogPostsPreview = document.getElementById('blog-posts-preview'); const blogPostsFullModal = document.getElementById('blog-posts-full-modal'); const blogPostsClose = document.getElementById('blog-posts-close'); const blogPostsList = document.querySelector('.blog-posts-list'); const blogPostsFullBody = document.querySelector('#blog-posts-full-modal .guestbook-body'); // 初始化 function init() { if (!blogPostsBtn || !blogPostsFullModal) return; // 点击按钮打开完整弹窗 blogPostsBtn.addEventListener('click', openFullModal); // 关闭按钮 blogPostsClose.addEventListener('click', closeFullModal); // 页面加载时自动加载数据(用于 Hover 预览) loadBlogPosts(true); } // 打开完整弹窗 function openFullModal() { blogPostsFullModal.classList.add('active'); document.body.style.overflow = 'hidden'; // 首次打开时加载文章 if (!document.querySelector('.blog-post-item')) { loadBlogPosts(true); } } // 关闭完整弹窗 function closeFullModal() { blogPostsFullModal.classList.remove('active'); document.body.style.overflow = ''; } // 加载文章列表 async function loadBlogPosts(reset = false) { if (isLoading || (!hasMore && !reset)) return; isLoading = true; if (reset) { currentPage = 1; hasMore = true; if (blogPostsList) blogPostsList.innerHTML = '