🤪解决pjax开启后跳出页面模态框不消失的问题,解决页面宽度问题,固定限制作者文章卡片仅显示五个

This commit is contained in:
柳神 2024-07-26 15:39:04 +08:00
parent 19efd6c871
commit ab05ec4030
5 changed files with 28 additions and 25 deletions

View File

@ -21,8 +21,8 @@
} }
} }
</script> </script>
<link rel="stylesheet" href="https://fastly.jsdelivr.net/gh/willow-god/Friend-Circle-Lite/main/fclite.min.css"> <link rel="stylesheet" href="./main/fclite.min.css">
<script src="https://fastly.jsdelivr.net/gh/willow-god/Friend-Circle-Lite/main/fclite.min.js"></script> <script src="./main/fclite.min.js"></script>
</body> </body>
</html> </html>

View File

@ -136,18 +136,18 @@ body {
top: 50%; top: 50%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
width: 400px; width: 350px;
background-color: var(--modal-content-bg-color); background-color: var(--modal-content-bg-color);
padding: 20px; padding: 20px;
border: 1px solid var(--border-color); border: 1px solid var(--border-color);
z-index: 1000; z-index: 1000;
max-height: 95%; max-height: 85%;
overflow-y: auto; overflow-y: auto;
border-radius: 20px; border-radius: 20px;
transition: opacity 0.3s; transition: opacity 0.3s;
} }
@media screen and (max-width: 400px) { @media screen and (max-width: 440px) {
.modal-content { .modal-content {
width: 80%; width: 80%;
} }
@ -194,6 +194,7 @@ body {
} }
.modal-article .modal-article-title { .modal-article .modal-article-title {
color: var(--text-color);
font-size: 18px; font-size: 18px;
line-height: 1.2; line-height: 1.2;
cursor: pointer; cursor: pointer;

View File

@ -20,19 +20,6 @@ function initialize_fc_lite() {
loadMoreBtn.innerText = '显示更多'; loadMoreBtn.innerText = '显示更多';
root.appendChild(loadMoreBtn); root.appendChild(loadMoreBtn);
// 创建模态框结构
const modal = document.createElement('div');
modal.id = 'modal';
modal.className = 'modal';
modal.innerHTML = `
<div class="modal-content">
<img id="modal-author-avatar" src="" alt="">
<a id="modal-author-name-link"></a>
<div id="modal-articles-container"></div>
</div>
`;
document.body.appendChild(modal); // this.body 改为 document.body
// 创建统计信息容器 // 创建统计信息容器
const statsContainer = document.createElement('div'); const statsContainer = document.createElement('div');
statsContainer.id = 'stats-container'; statsContainer.id = 'stats-container';
@ -117,7 +104,7 @@ function initialize_fc_lite() {
const date = document.createElement('div'); const date = document.createElement('div');
date.className = 'card-date'; date.className = 'card-date';
date.innerText = article.created.substring(0, 10); date.innerText = "🗓️" + article.created.substring(0, 10);
card.appendChild(date); card.appendChild(date);
const bgImg = document.createElement('img'); const bgImg = document.createElement('img');
@ -137,6 +124,21 @@ function initialize_fc_lite() {
} }
function showAuthorArticles(author, avatar, link) { function showAuthorArticles(author, avatar, link) {
// 如果不存在,则创建模态框结构
if (!document.getElementById('modal')) {
const modal = document.createElement('div');
modal.id = 'modal';
modal.className = 'modal';
modal.innerHTML = `
<div class="modal-content">
<img id="modal-author-avatar" src="" alt="">
<a id="modal-author-name-link"></a>
<div id="modal-articles-container"></div>
</div>
`;
document.body.appendChild(modal);
}
const modal = document.getElementById('modal'); const modal = document.getElementById('modal');
const modalArticlesContainer = document.getElementById('modal-articles-container'); const modalArticlesContainer = document.getElementById('modal-articles-container');
const modalAuthorAvatar = document.getElementById('modal-author-avatar'); const modalAuthorAvatar = document.getElementById('modal-author-avatar');
@ -149,7 +151,8 @@ function initialize_fc_lite() {
modalAuthorNameLink.href = new URL(link).origin; modalAuthorNameLink.href = new URL(link).origin;
const authorArticles = allArticles.filter(article => article.author === author); const authorArticles = allArticles.filter(article => article.author === author);
authorArticles.forEach(article => { // 仅仅取前五个,防止文章过多导致模态框过长,如果不够五个则全部取出
authorArticles.slice(0, 5).forEach(article => {
const articleDiv = document.createElement('div'); const articleDiv = document.createElement('div');
articleDiv.className = 'modal-article'; articleDiv.className = 'modal-article';
@ -162,7 +165,7 @@ function initialize_fc_lite() {
const date = document.createElement('div'); const date = document.createElement('div');
date.className = 'modal-article-date'; date.className = 'modal-article-date';
date.innerText = "--" + article.created.substring(0, 10); date.innerText = "📅" + article.created.substring(0, 10);
articleDiv.appendChild(date); articleDiv.appendChild(date);
modalArticlesContainer.appendChild(articleDiv); modalArticlesContainer.appendChild(articleDiv);
@ -181,6 +184,7 @@ function initialize_fc_lite() {
modal.classList.remove('modal-open'); modal.classList.remove('modal-open');
modal.addEventListener('transitionend', () => { modal.addEventListener('transitionend', () => {
modal.style.display = 'none'; modal.style.display = 'none';
document.body.removeChild(modal);
}, { once: true }); }, { once: true });
} }

4
main/fclite.min.css vendored

File diff suppressed because one or more lines are too long

2
main/fclite.min.js vendored

File diff suppressed because one or more lines are too long