fix(user-home): hide the old panel content while the tab skeleton loads
翻页 / 切 tab 是整页替换语义(author.js 最终就是 panel.innerHTML = html), 但加载态只做了骨架的显示,旧卡片与旧页码仍留在屏上,于是先看到 「第 1 页卡片 + 脚下一摞骨架」,等接口返回才换页。 加载期收起 .aksrt-user-home__post-list 的直接子级 .posts-item 与旧翻页控件, 让骨架独占内容区;对齐参考主题 post_ajax() 的 beforeSend(replace 时 $item.remove() + find(pag).remove())。显隐仍走纯类切换,不写 inline display。 两点刻意的收窄: - 只收直接子级 .posts-item 而非后代:骨架内层同样带 .posts-item, 后代选择器会把骨架自己也藏掉,占位就永远出不来。 - 旧页码用 :has(.post_ajax_loader) 限定:关注 / 评论面板没有骨架, 无条件隐藏会让它们加载时只剩一片空白。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
45dc909e4c
commit
16d67c8a87
2 files changed
+32
No files matched your search
@@ -584,6 +584,25 @@
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* 加载期收起旧页内容:翻页 / 切 tab 是整页替换语义(author.js 最终就是
|
||||
panel.innerHTML = html),骨架必须独占内容区,而不是追加在旧卡片下方 ——
|
||||
否则先看到「第 1 页卡片 + 脚下一摞骨架」,等接口返回才换页。
|
||||
对齐参考主题 post_ajax() 的 beforeSend:replace 时 $item.remove() +
|
||||
find(pag).remove()。收 display 而非删节点,仍守住「不写 inline display」契约。
|
||||
|
||||
只收 .aksrt-user-home__post-list 的**直接子级** .posts-item:骨架内层同样带
|
||||
.posts-item,写成后代选择器会连骨架自己一起隐藏掉。 */
|
||||
.aksrt-user-home .dashboard-panel.is-loading .aksrt-user-home__post-list > .posts-item {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* 旧翻页控件同属被替换的旧页内容,且高亮的是旧页码,加载期一并收起。
|
||||
用 :has() 限定「这个面板真有骨架」:关注 / 评论面板没有 .post_ajax_loader,
|
||||
无条件隐藏会让它们加载时只剩一片空白。 */
|
||||
.aksrt-user-home .dashboard-panel.is-loading:has(.post_ajax_loader) .profile-pagination {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.aksrt-user-home .dashboard-panel.is-loading .post_ajax_loader {
|
||||
display: block;
|
||||
animation: aksrtFadeIn 0.2s ease both;
|
||||
|
||||
Reference in new issue
Block a user