fix(forum): align forum pages with the reference layout
- cards: restore the shared card shell, add author follow/message actions, score group, last-reply meta and reference plate header actions - home: desktop left tab rail, widget-only sidebar, reference load-more markup - plate: 1-based tabs, reference defaults (全部/推荐/最新回复/热门/精华) - post: fixed action rail, score footer, author card, h1 article title - quick publish: plate selector moved into the submit row like the reference
This commit is contained in:
1 parent
7a59c65252
commit
ec5dfcd82f
15 files changed
+396
-166
No files matched your search
+105
-45
@@ -24,44 +24,44 @@
|
||||
#forum .jio-forum__tabs a{padding:14px 0;color:var(--forum-muted);border-bottom:2px solid transparent}
|
||||
#forum .jio-forum__tabs .is-active{color:var(--forum-accent);border-color:var(--forum-accent);font-weight:600}
|
||||
|
||||
/* ── 论坛首页:栏目 TAB ─────────────────────────────────────────── */
|
||||
/* ── 论坛首页:栏目 TAB(桌面端为左侧竖排导航,移动端横排滑动) ───────── */
|
||||
#forum.forum-home{padding-bottom:40px}
|
||||
.forum-home .forum-home__main{min-width:0}
|
||||
.forum-home .content-layout{min-width:0}
|
||||
.forum-home-tab .fixed-wrap-nav{margin-bottom:10px}
|
||||
.forum-home-tab .tab-nav-theme{border-bottom:none;padding:0;margin:0}
|
||||
.forum-home-tab .tab-nav-theme li{padding:0 2px}
|
||||
.forum-home-tab .tab-nav-theme li > a{display:block;padding:10px 12px;font-size:16px;color:var(--muted-2-color)}
|
||||
.forum-home-tab .tab-nav-theme li.active > a{color:var(--focus-color);font-weight:600}
|
||||
.forum-home-tab .tab-nav-theme li{padding:0}
|
||||
.forum-home-tab .tab-nav-theme li > a{display:block;padding:6px;margin:1px 0;font-size:16px;color:var(--muted-2-color);overflow:hidden}
|
||||
.forum-home-tab .tab-nav-theme li > a:hover{color:var(--main-color)}
|
||||
.forum-home-tab .tab-nav-theme li.active > a{color:var(--focus-color);font-weight:500;background:var(--focus-color-opacity05);border-radius:var(--mini-radius)}
|
||||
.forum-home-tab .tab-nav-theme li::before{display:none}
|
||||
.forum-home-tab .tab-content > .tab-pane{display:none}
|
||||
.forum-home-tab .tab-content > .tab-pane.active{display:block}
|
||||
.forum-main-tab-content{min-height:120px}
|
||||
.forum-more{padding:20px 0;text-align:center}
|
||||
.forum-more.is-loading{display:none}
|
||||
.forum-tab-pane > .ajax-item:last-of-type{margin-bottom:0}
|
||||
/* 首页栏目是横向 TAB,覆盖通用 .fixed-wrap 的竖排侧栏导航形态 */
|
||||
@media (min-width:768px){
|
||||
.forum-home-tab{--fixed-width:auto}
|
||||
.forum-home-tab > .fixed-wrap-nav{position:static;width:auto}
|
||||
.forum-home-tab > .fixed-wrap-nav + .fixed-wrap-content{margin-left:0}
|
||||
.forum-home-tab .fixed-wrap-nav.affix{position:sticky;left:auto;right:auto;width:auto;z-index:11;background:var(--main-bg-color);box-shadow:0 0 10px var(--main-shadow)}
|
||||
.forum-home-tab .tab-nav-theme.mini-scrollbar,
|
||||
.forum-home-tab .tab-nav-theme.swiper-scroll .swiper-wrapper{flex-direction:row;overflow-x:auto;overflow-y:hidden;text-align:left;white-space:nowrap;border-bottom:none;margin:0;padding:0}
|
||||
.forum-home-tab .tab-nav-theme.mini-scrollbar > li,
|
||||
.forum-home-tab .tab-nav-theme.swiper-scroll .swiper-wrapper > li{display:inline-block;padding:0;margin:0}
|
||||
@media (max-width:767px){
|
||||
.forum-home-tab .fixed-wrap-nav:not(.affix):not(.affix-bottom){margin-bottom:10px;padding:0 5px;background:transparent;box-shadow:none}
|
||||
.forum-home-tab .tab-nav-theme{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;text-align:left;white-space:nowrap;border-bottom:none;margin:0;padding:0}
|
||||
.forum-home-tab .tab-nav-theme > li{display:inline-block;padding:0;margin:0;flex:0 0 auto}
|
||||
.forum-home-tab .tab-nav-theme > li > a{padding:8px 10px;margin:0;font-size:15px;background:none!important}
|
||||
}
|
||||
.quick-posts-box{border-radius:var(--main-radius);padding:15px}
|
||||
.quick-posts-box .title-theme{margin-bottom:10px}
|
||||
.quick-input-group{padding:15px;border:1px solid var(--main-border-color);border-radius:var(--main-radius)}
|
||||
.quick-posts-box .edit-posts-title{position:relative}
|
||||
.quick-posts-box .edit-posts-title .line-form-line{display:none}
|
||||
.quick-posts-box .edit-posts-title textarea{width:100%;color:var(--main-color);padding:0;margin-bottom:10px;font-weight:500;font-size:18px;border:0;border-bottom:1px solid var(--main-border-color);background:transparent;resize:none;outline:0}
|
||||
.quick-posts-box .edit-posts-content textarea{outline:0!important;border:none;display:block;width:100%;padding:0;background:transparent;color:var(--main-color);resize:vertical;min-height:88px}
|
||||
.quick-posts-box .edit-posts-title textarea{width:100%;color:var(--main-color);opacity:1;padding:0;margin-bottom:10px;font-weight:500;font-size:18px;border:0;border-bottom:1px solid var(--main-border-color);background:transparent;resize:none;outline:0}
|
||||
.quick-posts-box .edit-posts-content textarea{outline:0!important;border:none;display:block;width:100%;padding:0;margin-bottom:10px;background:var(--main-bg-color);opacity:.9;color:var(--main-color);resize:vertical;min-height:88px}
|
||||
.quick-posts-box .preview .add,.quick-posts-box .preview .preview-item{width:90px;height:90px;border:1px dashed var(--main-border-color);background:none;margin:2px;border-radius:var(--main-radius);position:relative}
|
||||
.quick-posts-box .preview .add:before{content:"+";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--muted-3-color)}
|
||||
.quick-posts-box .drop-select .dropdown-menu{min-width:320px}
|
||||
.quick-more-btns{color:var(--muted-color);position:relative;flex-wrap:wrap;gap:6px}
|
||||
.quick-more-btns .drop-btn{padding:6px 4px;cursor:pointer}
|
||||
.quick-posts-box .dropdown-menu.fluid::before{left:20px}
|
||||
.quick-posts-box .but-plate{font-size:14px;padding:5px 9px 6px 5px}
|
||||
.quick-more-btns{color:var(--muted-color);position:relative;flex-wrap:wrap}
|
||||
.quick-more-btns .drop-btn{padding:6px 4px;cursor:pointer;white-space:nowrap}
|
||||
.quick-more-btns .drop-select{position:relative}
|
||||
.quick-selected-tags > *{display:inline-block}
|
||||
.quick-selected-tags > *:empty{display:none}
|
||||
.quick-selected-tags [name="topics"]{color:var(--focus-color);margin-top:6px;font-size:13px}
|
||||
.quick-posts-submit .but{padding:6px 5px;min-width:85px}
|
||||
.quick-posts-submit .quick-captcha{margin-bottom:8px}
|
||||
.hide-type-drop .select-drop-box .badg.active{--this-bg:var(--focus-color);--this-color:#fff}
|
||||
@@ -75,6 +75,15 @@
|
||||
.quick-posts-form .jio-forum__message:empty{display:none}
|
||||
.forum-pending-plate{background:var(--main-bg-color);box-shadow:0 0 10px var(--main-shadow);border-radius:var(--main-radius);padding:12px 15px;margin-bottom:10px}
|
||||
|
||||
/* ── 论坛首页 / 版块页的加载更多(与主题 AJAX 翻页按钮同构) ───────── */
|
||||
.forum-tab-pane .theme-pagination,.plate-tab .theme-pagination{margin:0}
|
||||
.forum-tab-pane .theme-pagination.ajax-pag,.plate-tab .theme-pagination.ajax-pag{padding:15px 5px 10px}
|
||||
.forum-tab-pane .theme-pagination .ajax-next a,.plate-tab .theme-pagination .ajax-next a{color:var(--muted-color);opacity:.6;border-radius:30px;padding:5px 15px;display:inline-block}
|
||||
.forum-tab-pane .theme-pagination .ajax-next a:hover,.plate-tab .theme-pagination .ajax-next a:hover{background:var(--main-border-color);opacity:1}
|
||||
.forum-tab-pane .theme-pagination .ajax-next .fa,.plate-tab .theme-pagination .ajax-next .fa{margin-right:15px;transition:.3s}
|
||||
.forum-tab-pane .theme-pagination .ajax-next a:hover .fa,.plate-tab .theme-pagination .ajax-next a:hover .fa{margin-right:8px}
|
||||
.forum-tab-pane.is-loading .theme-pagination,.plate-tab .forum-tab-pane.is-loading .theme-pagination{display:none}
|
||||
|
||||
/* ── 版块面板 / 版块卡片 ────────────────────────────────────────── */
|
||||
.panel.panel-plate{border-color:transparent;margin-bottom:10px;background:var(--main-bg-color);border-radius:var(--main-radius);box-shadow:0 0 10px var(--main-shadow);padding:0 15px}
|
||||
.panel.panel-plate:first-of-type .panel-title{padding-top:10px}
|
||||
@@ -94,9 +103,10 @@
|
||||
.scroll-plate .plate-card.mini{padding:15px 5px;width:85px}
|
||||
.scroll-plate .plate-card .plate-thumb{width:50px!important;height:50px!important}
|
||||
.follow-plate .plate-card{width:90px}
|
||||
.plate-item{display:inline-flex;align-items:flex-start}
|
||||
.plate-item{display:inline-flex}
|
||||
.plate-lists{display:flex;align-content:flex-start;flex-flow:row wrap;margin:-3px}
|
||||
.plate-lists .plate-item{margin:3px;background:var(--main-bg-color);box-shadow:0 0 10px var(--main-shadow);border-color:transparent;border-radius:var(--main-radius);padding:15px 20px;width:calc(50% - 6px);position:relative;box-sizing:border-box}
|
||||
.sidebar .plate-lists .plate-item{width:calc(100% - 6px)}
|
||||
.plate-item .plate-thumb{margin-right:15px;flex-shrink:0;display:inline-block;width:60px;height:60px;position:relative}
|
||||
.plate-item .plate-thumb > img,.plate-thumb > img{border-radius:100px;width:100%;height:100%}
|
||||
.plate-item .forum-thumbnail{transition:all .2s;object-fit:cover;width:100%;height:100%}
|
||||
@@ -165,10 +175,10 @@
|
||||
.forum-posts.detail .user-info ~ *{margin-left:70px}
|
||||
.forum-posts.detail .user-info .display-name{font-size:16px}
|
||||
.forum-posts.detail .action-meta .btn-score:hover,.forum-posts.detail .action-meta a.item:hover{background:var(--main-border-color)}
|
||||
.forum-header .buts .but{min-width:87px}
|
||||
.blur-header .count-mates{--main-border-color:rgba(255,255,255,.08)}
|
||||
}
|
||||
@media(max-width:800px){
|
||||
#forum .jio-forum__layout{grid-template-columns:1fr}
|
||||
#forum .jio-forum__aside{border-left:0;padding-left:0}
|
||||
.forum-home .sidebar{width:100%;margin-left:0;margin-top:20px}
|
||||
.forum-home .content-layout{margin-right:0!important;margin-left:0!important}
|
||||
}
|
||||
@@ -301,35 +311,53 @@ body.dark-theme .panel.panel-plate,body.dark-theme .plate-lists .plate-item,body
|
||||
body.dark-theme .forum-header,body.dark-theme .forum-header .header-content{background:var(--main-bg-color)}
|
||||
|
||||
/* ── 版块 / 分类页面 ──────────────────────────────────────────── */
|
||||
.forum-listing .jio-forum__breadcrumbs{margin:0 0 12px}
|
||||
.forum-listing .jio-forum__list-main{min-width:0}
|
||||
.forum-listing .content-layout{min-width:0}
|
||||
.term-main{max-width:790px;margin:0 auto 20px}
|
||||
.plate-tab{padding:0}
|
||||
.plate-tab .affix-header-sm{padding:0 15px;background:var(--main-bg-color);border-radius:var(--main-radius) var(--main-radius) 0 0}
|
||||
.plate-tab .affix-header-sm.affix,.plate-tab .affix-header-sm.affix-bottom{padding:8px 25px}
|
||||
.plate-tab .tab-nav-theme{margin:0;border-bottom:1px solid var(--main-border-color)}
|
||||
.plate-tab .tab-nav-theme li a{font-size:16px;color:var(--muted-2-color);display:block;padding:12px 14px}
|
||||
.plate-tab .tab-nav-theme li.active a{font-weight:bold;color:var(--focus-color)}
|
||||
.plate-tab .tab-nav-theme{margin:0}
|
||||
.plate-tab .tab-nav-theme li a{font-size:16px;color:var(--muted-2-color);display:block;padding:0 5px}
|
||||
.plate-tab .tab-nav-theme li.active a{font-weight:700;color:var(--focus-color)}
|
||||
.plate-tab .tab-content{padding:10px 15px}
|
||||
.plate-tab .tab-content > .tab-pane{display:none}
|
||||
.plate-tab .tab-content > .tab-pane.active{display:block}
|
||||
.plate-tab .forum-tab-pane{min-height:120px}
|
||||
.forum-header.blur-header{overflow:hidden;color:#fff}
|
||||
.forum-header.blur-header .header-content{background:transparent;color:#fff;padding:28px 30px 22px}
|
||||
.forum-header.blur-header .forum-title,.forum-header.blur-header .forum-title a{color:#fff}
|
||||
.forum-header.blur-header{overflow:hidden;color:#ddd}
|
||||
.forum-header.blur-header .header-content{background:none;color:#fff;padding:70px 50px 50px}
|
||||
.forum-header.blur-header .forum-title,.forum-header.blur-header .forum-title a,.forum-header.blur-header a{color:#fff}
|
||||
.forum-header.blur-header .desc,.forum-header.blur-header .px12-sm{color:rgba(255,255,255,.86)}
|
||||
.forum-header .abs-blur-bg img{width:100%;height:100%;object-fit:cover}
|
||||
.forum-header .forum-mask{position:absolute;inset:0;background:rgba(76,80,87,.6)}
|
||||
.forum-header.blur-header .plate-thumb{width:90px;height:90px;flex-shrink:0}
|
||||
.forum-header.blur-header .plate-thumb > img{border-radius:var(--main-radius)}
|
||||
.forum-header.blur-header .plate-thumb{width:115px;height:115px;flex-shrink:0}
|
||||
.forum-header.blur-header .plate-thumb > img{border-radius:4px}
|
||||
.forum-header .more-btns{position:absolute;right:5px;top:3px;z-index:1;justify-content:flex-end}
|
||||
.forum-header .more-btns .item{padding:5px 7px;opacity:.8;font-size:1.2em;color:#fff;border:0;background:none;cursor:pointer}
|
||||
.forum-header .more-btns .item text{display:none}
|
||||
.forum-header .moderator-btns{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
|
||||
.forum-header .moderator-btns .avatar-mini{--this-size:22px;margin-right:4px}
|
||||
.forum-header .moderator-btns .avatar-mini img{border-radius:100px}
|
||||
.forum-header .moderator-btns .but{font-size:12px;padding:3px 10px}
|
||||
.forum-header .moderator-btns .avatar-mini{--this-size:22px;margin-right:4px;display:inline-block}
|
||||
.forum-header .moderator-btns .avatar-mini img{border-radius:100px;width:100%;height:100%}
|
||||
.forum-header .moderator-btns .but{font-size:12px;padding:3px 10px;line-height:21px;min-width:90px}
|
||||
.forum-header .count-mates{margin-top:10px}
|
||||
.forum-header .count-mates item{display:inline-block}
|
||||
.forum-header .count-mates > item + item{border-left:1px solid rgba(255,255,255,.08);padding-left:20px;margin-left:20px}
|
||||
.blur-header .c-white{--this-bg:rgba(255,255,255,.12);--this-color:#fff}
|
||||
.forum-header .more-btns .btn-follow{color:#fff;border:0;background:none;cursor:pointer;opacity:.85;padding:5px 7px;font-size:1.2em}
|
||||
.forum-header .more-btns .btn-follow.active{color:#ff7800;opacity:1}
|
||||
|
||||
/* ── 帖子详情页 ───────────────────────────────────────────────── */
|
||||
.forum-post .single-wrap{width:100%}
|
||||
.single-fixed-btns{display:none}
|
||||
@media (min-width:768px){
|
||||
.forum-post .fixed-wrap-nav.single-fixed-btns{display:block}
|
||||
.single-fixed-btns .score-btns{display:block;text-align:center}
|
||||
.single-fixed-btns .score-btns text{display:block;font-size:12px;color:var(--muted-2-color);min-width:30px;margin:5px}
|
||||
.single-fixed-btns .btn-score{font-size:24px;color:var(--muted-color);display:inline-flex;align-items:center}
|
||||
.single-fixed-btns .btn-score.extra.active{color:#40a1ff}
|
||||
.single-fixed-btns .btn-score.deduct.active{color:#ff556d}
|
||||
}
|
||||
.forum-single-cover{border-radius:var(--main-radius);overflow:hidden}
|
||||
.forum-article{padding:20px 26px}
|
||||
.forum-article{padding:0 30px;overflow:hidden}
|
||||
.forum-article .article-header{margin-bottom:15px;padding-bottom:12px;margin-top:5px;border-bottom:1px solid var(--main-border-color)}
|
||||
.forum-article .article-title{font-size:24px;line-height:1.4;margin:0 0 10px;font-weight:600}
|
||||
.forum-article .article-title a{color:var(--key-color)}
|
||||
@@ -340,18 +368,32 @@ body.dark-theme .forum-header,body.dark-theme .forum-header .header-content{back
|
||||
.forum-article .wp-posts-content{font-size:15px;line-height:1.9;overflow-wrap:anywhere}
|
||||
.forum-article .article-tags{display:flex;flex-wrap:wrap;gap:6px}
|
||||
.forum-article .article-tags .but{font-size:12px;padding:4px 10px}
|
||||
.forum-article .score-box.single-footer{margin:10px 0 20px}
|
||||
.forum-article .score-box .score-btns{margin-bottom:10px;border-radius:100px;padding:8px 24px;box-shadow:0 2px 10px 4px var(--main-shadow);display:inline-flex;align-items:center}
|
||||
.forum-article .score-box .btn-score{font-size:24px;color:var(--muted-color);padding:2px}
|
||||
.forum-article .score-box .btn-score.extra.active{color:#40a1ff}
|
||||
.forum-article .score-box .btn-score.deduct.active{color:#ff556d}
|
||||
.forum-article .score-box .score-btns text{font-size:12px;color:var(--muted-2-color);min-width:30px;margin:5px}
|
||||
.forum-single-author{background-color:var(--muted-bg-2-color);box-shadow:none}
|
||||
.forum-single-author .card-content{display:flex;gap:40px;padding:15px 40px}
|
||||
.forum-single-author .user-content{display:flex;align-items:center;gap:20px}
|
||||
.forum-single-author .count-info{display:flex;flex-direction:column;gap:6px}
|
||||
.forum-single-author .user-info .border-bottom{padding-bottom:10px;margin-bottom:10px}
|
||||
.forum-single-author .user-desc{font-size:13px}
|
||||
.forum-single-author .more-posts-mini .item{padding:3px 0}
|
||||
.forum-single-author .more-posts-mini a{display:block;color:var(--muted-2-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
||||
.footer-actions{margin:18px -10px 10px;padding-top:14px;border-top:1px solid var(--main-border-color)}
|
||||
.footer-actions .item{display:flex;align-items:center;padding:4px 8px;margin:0 4px;color:var(--muted-color);border:0;background:none;cursor:pointer;border-radius:4px}
|
||||
.footer-actions .item:hover{background:var(--muted-border-color)}
|
||||
.footer-actions .item > i{font-size:18px;margin-right:5px}
|
||||
.footer-actions .item{display:flex;align-items:center;padding:0 4px;margin:0 4px;color:var(--muted-color);border:0;background:none;cursor:pointer}
|
||||
.footer-actions .item:hover{color:var(--focus-color)}
|
||||
.footer-actions .item > i,.footer-actions .item > .icon{font-size:20px;margin-right:4px}
|
||||
.footer-actions .item text{font-size:12px}
|
||||
.single-footer .but{font-size:12px;padding:4px 12px}
|
||||
.vote-box.forum-vote{padding:20px 0}
|
||||
.vote-box.forum-vote{padding:15px 30px}
|
||||
.vote-box.forum-vote h2{font-size:17px}
|
||||
.vote-item{position:relative;overflow:hidden;padding:8px 3.5em 8px 15px;margin-bottom:6px;border-radius:50px;background:var(--muted-border-color);color:var(--muted-color);display:block;cursor:pointer;text-overflow:ellipsis;white-space:nowrap}
|
||||
.vote-item{position:relative;overflow:hidden;padding:5px 3.5em 5px 15px;margin-bottom:6px;border-radius:50px;background:var(--main-bg-color);color:var(--muted-color);display:block;cursor:pointer;text-overflow:ellipsis;white-space:nowrap}
|
||||
.vote-item input{margin-right:8px}
|
||||
.vote-progress{position:absolute;left:0;top:0;bottom:0;background:rgba(130,130,130,.15);transition:width .6s,background .2s;border-radius:50px;width:0;z-index:-1}
|
||||
.vote-item .vote-count{position:absolute;right:14px;font-size:.9em;opacity:.8}
|
||||
.vote-progress{position:absolute;left:0;top:0;bottom:0;background:rgba(130,130,130,.15);transition:width 1s,background .2s;border-radius:50px;width:0;z-index:-1}
|
||||
.vote-item .vote-count{position:absolute;right:14px;font-size:.9em;margin-top:.1em;opacity:.8}
|
||||
.vote-box.forum-vote button{display:block;margin:16px auto 0}
|
||||
|
||||
/* ── 发帖 / 编辑页 ────────────────────────────────────────────── */
|
||||
@@ -384,3 +426,21 @@ body.dark-theme .forum-header,body.dark-theme .forum-header .header-content{back
|
||||
.forum-header.blur-header .plate-thumb{width:64px;height:64px}
|
||||
}
|
||||
body.dark-theme .forum-header.blur-header .forum-mask{background:rgba(20,22,26,.72)}
|
||||
|
||||
/* ── 详情页侧栏版块信息卡(参考 .plate-info-sidebar) ─────────────── */
|
||||
.plate-info-sidebar .forum-header{box-shadow:0 0 10px var(--main-shadow);border-radius:var(--main-radius)}
|
||||
.plate-info-sidebar .header-content{padding:55px 20px 25px;background:var(--main-bg-color);border-radius:var(--main-radius)}
|
||||
.plate-info-sidebar .plate-thumb{width:100px;height:100px;margin:0 auto 10px}
|
||||
.plate-info-sidebar .plate-thumb > img{border-radius:4px}
|
||||
.plate-info-sidebar .forum-title{font-size:16px;text-align:center}
|
||||
.plate-info-sidebar .count-mates{text-align:center;color:var(--muted-2-color)}
|
||||
.plate-info-sidebar .count-mates > item + item{border-left:1px solid var(--main-border-color);padding-left:12px;margin-left:12px}
|
||||
.plate-info-sidebar .follow-info{background:var(--main-border-color);box-shadow:none;color:var(--focus-color);padding:6px 12px;margin-top:38px;opacity:.9}
|
||||
@media (max-width:640px){
|
||||
.forum-single-author .card-content{flex-direction:column;gap:20px;padding:5px 12px}
|
||||
.forum-single-author .user-info .border-bottom{padding-bottom:10px;margin-bottom:10px}
|
||||
.forum-article{padding:0 15px}
|
||||
.forum-article .article-title{font-size:20px}
|
||||
.forum-header.blur-header .header-content{padding:60px 15px 30px}
|
||||
.forum-header.blur-header .plate-thumb{width:105px;height:105px;order:2;margin:0 0 0 20px}
|
||||
}
|
||||
@@ -359,6 +359,24 @@
|
||||
const label = button.querySelector('text')
|
||||
if (label) label.textContent = following ? '已关注' : '关注'
|
||||
else button.textContent = result.data?.label || button.textContent
|
||||
} else if (action === 'favorite') {
|
||||
const active = result.data?.active === true
|
||||
button.classList.toggle('active', active)
|
||||
const label = button.querySelector('text')
|
||||
if (label) label.textContent = active ? '已收藏' : '收藏'
|
||||
} else if (action === 'score') {
|
||||
// Card score group: flip the active arrow and refresh the shared counter.
|
||||
const group = button.closest('.score-btns')
|
||||
if (group) {
|
||||
const isUp = button.dataset.direction !== 'down'
|
||||
const userScore = Number(result.data?.user_score || 0)
|
||||
group.querySelectorAll('.btn-score').forEach((item) => {
|
||||
const own = (item.dataset.direction !== 'down') === isUp
|
||||
item.classList.toggle('active', own && userScore !== 0)
|
||||
})
|
||||
const counter = group.querySelector('text')
|
||||
if (counter) counter.textContent = Number(result.data?.score || 0) > 0 ? String(result.data.score) : '评分'
|
||||
}
|
||||
} else if (button.querySelector('text')) {
|
||||
button.querySelector('text').textContent = result.data?.label || result.message || button.querySelector('text').textContent
|
||||
} else {
|
||||
@@ -403,7 +421,7 @@
|
||||
const loadMore = async (link, pane) => {
|
||||
if (pane.dataset.loading === '1') return
|
||||
pane.dataset.loading = '1'
|
||||
const more = link.closest('.forum-more')
|
||||
const more = link.closest('.theme-pagination') || link.closest('.ajax-pag')
|
||||
const loader = [...pane.children].find((item) => item.classList.contains('post_ajax_loader'))
|
||||
more?.classList.add('is-loading')
|
||||
loader?.classList.add('is-loading')
|
||||
@@ -414,7 +432,7 @@
|
||||
const source = doc.getElementById(pane.id)
|
||||
if (!source) throw new Error('内容不存在')
|
||||
const anchor = more || null
|
||||
const incoming = [...source.children].filter((item) => !item.classList.contains('forum-tab-pane') && !item.classList.contains('forum-more') && !item.classList.contains('post_ajax_loader'))
|
||||
const incoming = [...source.children].filter((item) => !item.classList.contains('forum-tab-pane') && !item.classList.contains('theme-pagination') && !item.classList.contains('post_ajax_loader'))
|
||||
incoming.forEach((item) => pane.insertBefore(item, anchor))
|
||||
const next = source.querySelector('[data-forum-more]')
|
||||
if (next && anchor) anchor.querySelector('[data-forum-more]')?.setAttribute('href', next.getAttribute('href'))
|
||||
@@ -449,7 +467,10 @@
|
||||
}
|
||||
const more = event.target.closest('[data-forum-more]')
|
||||
if (more) {
|
||||
// The wrapper also carries .ajax-next for the theme's pagination styles;
|
||||
// stop the generic handler from firing a second request.
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
const pane = more.closest('.forum-tab-pane')
|
||||
if (pane) loadMore(more, pane)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user