孕妈广场瀑布流:图上带字卡提到约 45%(每列带字/不带字交替、两列错开,压大字与贴纸字轮换);「全部」每 8 张帖子插 1 张测试卡(约 11%,先精选再按热度);v26110227

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
deploy
2026-11-02 12:46:19 +00:00
parent bbdc306114
commit 22e18c27ab
6 changed files with 24 additions and 21 deletions

View File

@@ -325,8 +325,8 @@ mark{background:linear-gradient(transparent 62%,var(--c20) 0);color:inherit;padd
</div>
<div class="toast" id="toast"></div>
<script src="meta.js?v=26110226"></script>
<script src="tests.js?v=26110226"></script>
<script src="meta.js?v=26110227"></script>
<script src="tests.js?v=26110227"></script>
<script>
(function () {
'use strict';

View File

@@ -604,10 +604,10 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
<div id="sheet" role="dialog" aria-modal="true"><i class="sg"></i><div class="sbd" id="sbd"></div></div>
<div class="toast" id="toast"></div>
<script src="topics.js?v=26110226"></script>
<script src="data.js?v=26110226"></script>
<script src="feed.js?v=26110226"></script>
<script src="ceshi/meta.js?v=26110226"></script>
<script src="topics.js?v=26110227"></script>
<script src="data.js?v=26110227"></script>
<script src="feed.js?v=26110227"></script>
<script src="ceshi/meta.js?v=26110227"></script>
<script>
(function () {
'use strict';
@@ -792,12 +792,12 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
haptic(); location.href = target;
}
/* 11-02 v2 用户:「测一测放到『经验』后边;孕妈广场上现在那个测一测删掉;『大家在聊』里穿插几个测一测,点了进对应的测试」
→ CATS 加第 5 个分类 ceshi;选中时 #head 放说明卡、#fh 放分组胶囊、#wf 瀑布流放 25 张测试卡;「全部」信息流按 CS_AT 位置穿插 CS_MIX 里的测试卡。
→ CATS 加第 5 个分类 ceshi;选中时 #head 放说明卡、#fh 放分组胶囊、#wf 瀑布流放 25 张测试卡;「全部」信息流每 8 张帖子穿插 1 张测试卡(先 CS_MIX 再按热度)。
测试目录只引轻量 ceshi/meta.js;题库在 ceshi/tests.js,只在测试页加载。 */
var TM = window.GC_TESTS_META || [], TMBY = {};
TM.forEach(function (x) { TMBY[x.id] = x; });
var TG = { quiz: '知识考卷', psy: '趣味心理', game: '趣味闯关', shop: '好物配置' }, tGrp = '';
var CS_MIX = ['t11', 't29', 't01', 't24', 't26', 't16', 't03', 't27', 't14', 't21', 't30', 't18'], CS_AT = [3, 10, 18, 27, 37, 48, 60, 73, 87, 102, 118, 135];
var CS_MIX = ['t11', 't29', 't01', 't24', 't26', 't16', 't03', 't27', 't14', 't21', 't30', 't18'];
function csDone() { try { return (JSON.parse(localStorage.getItem('mmbox.gcts.v1') || '{}')[param('openid') || '_guest']) || {}; } catch (e) { return {}; } }
function ceshiURL(id, fromTab) {
var q = new URLSearchParams(location.search); ['t', 'n', 'c', 'id', 'mine', 'write'].forEach(function (k) { q.delete(k); });
@@ -939,14 +939,16 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
var cw = cols[0].clientWidth || 175;
wf.style.setProperty('--cw', cw + 'px');
/* 真瀑布流:每张卡放进当前更矮的那一列(逐张量高,标题一行/两行也算进去) */
var hs = [0, 0], tmp = document.createElement('div'), STY = ['', 'ov', '', '', 'tg', '', '', 'ov', '', 'tg', '', ''];
var hs = [0, 0], tmp = document.createElement('div'), lastTx = [false, true], txN = [0, 1]; /* 11-02 用户:图上带字的卡至少占 40% → 每列「带字 / 不带字」交替(测试卡算不带字),两列错开一格,带字的在压大字 ov / 贴纸字 tg 间轮换;整体约 45% */
if (catF === 'ceshi') {
$('#more').innerHTML = ceshiListHTML(); return;
}
/* 「全部」信息流:按 CS_AT 位置穿插测试卡 */
/* 「全部」信息流:穿插测试卡 */
if (!cur && !catF && TM.length) {
var dn = csDone(), mixed = [], ci = 0;
list.forEach(function (n, k) { while (ci < CS_AT.length && CS_AT[ci] === mixed.length) { if (TMBY[CS_MIX[ci]]) mixed.push({ test: TMBY[CS_MIX[ci]] }); ci++; } mixed.push(n); });
/* 测试卡:第 3 位起每 8 张帖子插 1 张(约占 1/9),先出 CS_MIX 精选,再按热度轮完其余测试 */
var csq = CS_MIX.concat(byHot(TM).map(function (x) { return x.id; }).filter(function (id) { return CS_MIX.indexOf(id) < 0; }));
list.forEach(function (n, k) { if (k >= 3 && (k - 3) % 8 === 0) { var tid = csq[ci++ % csq.length]; if (TMBY[tid]) mixed.push({ test: TMBY[tid] }); } mixed.push(n); });
list = [{ mine: 1 }].concat(mixed);
}
var nk = 0;
@@ -959,13 +961,14 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
if (n.test) {
tmp.innerHTML = testCardHTML(n.test, dn);
var te = tmp.firstChild; te.style.animationDelay = Math.min(k, 10) * 30 + 'ms';
var tc0 = hs[0] <= hs[1] ? 0 : 1; cols[tc0].appendChild(te); hs[tc0] += te.offsetHeight + 8;
var tc0 = hs[0] <= hs[1] ? 0 : 1; cols[tc0].appendChild(te); hs[tc0] += te.offsetHeight + 8; lastTx[tc0] = false;
return;
}
k = nk++;
tmp.innerHTML = cardHTML(n, !cur, STY[k % STY.length]);
var c = hs[0] <= hs[1] ? 0 : 1, sty = !lastTx[c] && n.photo ? (txN[c]++ % 2 ? 'tg' : 'ov') : '';
lastTx[c] = !!sty;
tmp.innerHTML = cardHTML(n, !cur, sty);
var el = tmp.firstChild; el.style.animationDelay = Math.min(k, 10) * 30 + 'ms';
var c = hs[0] <= hs[1] ? 0 : 1;
cols[c].appendChild(el);
hs[c] += el.offsetHeight + 8;
});

View File

@@ -105,7 +105,7 @@ main{padding:6px 16px 0}
</div>
<div class="wb"><button type="button" id="write"><svg class="ic" viewBox="0 0 24 24"><path d="M12 20h9M16.5 3.5a2.1 2.1 0 013 3L7 19l-4 1 1-4z"/></svg>写新的故事</button></div>
<script src="../topics.js?v=26110226"></script>
<script src="../topics.js?v=26110227"></script>
<script>
(function () {
'use strict';