头像按模块分配互不重复:js/ava-pool.js(375 个装饰头像分 12 段),评论区让出这些人设改同类替补(v26110440)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<!-- 11-04 UGC 总开关关着时本页不展示,直接回首页(js/ugc.js) -->
|
||||
<script src="../../js/ugc.js?v=26110439" data-guard></script>
|
||||
<script src="../../js/ugc.js?v=26110440" data-guard></script>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<title>测一测 · 孕妈广场</title>
|
||||
@@ -322,9 +322,9 @@ mark{background:linear-gradient(transparent 62%,var(--c20) 0);color:inherit;padd
|
||||
</div>
|
||||
<div class="toast" id="toast"></div>
|
||||
|
||||
<script src="../../js/share-card.js?v=26110439"></script>
|
||||
<script src="meta.js?v=26110439"></script>
|
||||
<script src="tests.js?v=26110439"></script>
|
||||
<script src="../../js/share-card.js?v=26110440"></script>
|
||||
<script src="meta.js?v=26110440"></script>
|
||||
<script src="tests.js?v=26110440"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<!-- 11-04 UGC 总开关关着时本页不展示,直接回首页(js/ugc.js) -->
|
||||
<script src="../js/ugc.js?v=26110439" data-guard></script>
|
||||
<script src="../js/ugc.js?v=26110440" data-guard></script>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<title>孕妈广场</title>
|
||||
@@ -890,11 +890,12 @@ 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=26110439"></script>
|
||||
<script src="data.js?v=26110439"></script>
|
||||
<script src="feed.js?v=26110439"></script>
|
||||
<script src="ceshi/meta.js?v=26110439"></script>
|
||||
<script src="../js/share-card.js?v=26110439"></script>
|
||||
<script src="topics.js?v=26110440"></script>
|
||||
<script src="data.js?v=26110440"></script>
|
||||
<script src="feed.js?v=26110440"></script>
|
||||
<script src="../js/ava-pool.js?v=26110440"></script> <!-- 11-05 装饰头像分配表(各模块互不重复) -->
|
||||
<script src="ceshi/meta.js?v=26110440"></script>
|
||||
<script src="../js/share-card.js?v=26110440"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -924,7 +925,8 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
'p01','p02','p03','p04','p05','p06','p07','p08','p09','p10','p11','p12','p13','p14','s01','s02','s03','s04','s05','s06','s07','s08','s09','s10',
|
||||
'k01','k02','k03','k04','k05','k06','k07','k08','k09','k10','k11','k12','k13'];
|
||||
var avSrc = function (key) { return '../assets/img/mom/' + AV[seed(key) % AV.length] + '.jpg'; };
|
||||
var avOf = function (n) { return n.avatar || avSrc(n.author); }; /* 真实投稿用本人头像,占位笔记用头像池 */
|
||||
/* 11-05 用户:各模块头像不要重复 → 占位笔记作者头像改用分配表 author(每篇一个,179 个互不相同,首页卡堆 / 大家都在关注同一张);分配表没有的才回落 AV 池 */
|
||||
var avOf = function (n) { var a = window.MB_AVA && MB_AVA.S.author[n.id]; return n.avatar || (a ? MB_AVA.src(a, '../') : avSrc(n.author)); };
|
||||
|
||||
/* ---------- 笔记:data.js 的原始内容 + 确定性补字段(id / 封面样式 / 比例 / 评论) ---------- */
|
||||
var NOTES = [], NBY = {}; /* 真实投稿到达后会往前插(loadApproved),所以 NOTES / MIXED 用 var 可重赋值 */
|
||||
@@ -960,7 +962,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
var CMD = null, CMERR = false;
|
||||
/* 头像编码:数字 = av/NNNN.webp(旧代码头像);'av:c012' = av/c012.webp(卡通/可爱卡通);'/…' = 站内绝对路径(内置头像库 /_bridge/avatars/);其余 = assets/img/mom/xxx.jpg */
|
||||
var avP = function (a) { return typeof a === 'number' ? 'av/' + ('000' + a).slice(-4) + '.webp' : a.indexOf('av:') === 0 ? 'av/' + a.slice(3) + '.webp' : a.charAt(0) === '/' ? a : '../assets/img/mom/' + a + '.jpg'; };
|
||||
fetch('cm.json?v=26110439').then(function (r) { return r.json(); }).then(function (j) {
|
||||
fetch('cm.json?v=26110440').then(function (r) { return r.json(); }).then(function (j) {
|
||||
CMD = j; if (openId && NBY[openId]) { renderComments(NBY[openId]); syncBar(NBY[openId]); }
|
||||
}).catch(function () { CMERR = true; if (openId && NBY[openId]) renderComments(NBY[openId]); });
|
||||
function commentsOf(n) {
|
||||
@@ -1222,9 +1224,11 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
function csTI(x) { return CS_TI[x.id] ? '<svg viewBox="0 0 24 24" fill="#fff" aria-hidden="true">' + CS_TI[x.id] + '</svg>' : CS_ICO[x.group]; }
|
||||
/* 头像:59 张人设照轮着取,同一张卡/行 3 个不重复,相邻两处也不撞(模拟,AGENTS.md 12b,12-31 复核) */
|
||||
var CS_AVP = (function () { var a = [], i; for (i = 1; i <= 13; i++) a.push('k' + (i < 10 ? '0' : '') + i); for (i = 1; i <= 22; i++) a.push('m' + (i < 10 ? '0' : '') + i); for (i = 1; i <= 14; i++) a.push('p' + (i < 10 ? '0' : '') + i); for (i = 1; i <= 10; i++) a.push('s' + (i < 10 ? '0' : '') + i);
|
||||
if (window.MB_AVA && MB_AVA.S.csStack) a = MB_AVA.S.csStack.slice(); /* 11-05 测试页头像叠改用分配表 csStack(30 个,只在测试页出现) */
|
||||
for (i = a.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)), t = a[i]; a[i] = a[j]; a[j] = t; } return a; })();
|
||||
var csSrc = function (c) { return /:|^\//.test(c) && window.MB_AVA ? MB_AVA.src(c, '../') : '../assets/img/mom/' + c + '.jpg'; };
|
||||
var csAvK = 0;
|
||||
function csAvs(n) { var h = '<span class="cav">'; for (var i = 0; i < n; i++) h += '<img src="../assets/img/mom/' + CS_AVP[csAvK++ % CS_AVP.length] + '.jpg" alt="" loading="lazy">'; return h + '</span>'; }
|
||||
function csAvs(n) { var h = '<span class="cav">'; for (var i = 0; i < n; i++) h += '<img src="' + csSrc(CS_AVP[csAvK++ % CS_AVP.length]) + '" alt="" loading="lazy">'; return h + '</span>'; }
|
||||
var CS_SEC = { quiz: ['', '查漏补缺,温和掌握孕产育儿知识', 2], psy: ['', '看见情绪,也看见关系', 2], game: ['', '挑战一下,看能拿什么称号', 2], shop: ['', '测测你给娃买东西、挑东西是哪种风格', 2] };
|
||||
/* 11-04 用户:「每个测试的背景图要做匹配的图片,不要同样的背景色;按组区分色块、组内统一」→ 每个测试一张插画(ceshi/cv/tNN.webp),
|
||||
色调跟组走:常识小测暖桃 / 趣味心理薰衣草紫 / 趣味闯关薄荷绿 / 好物配置天蓝;画面上半留白放标题。列表行的小方块也换成同一张图。 */
|
||||
@@ -1258,7 +1262,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
var it = [], n = Math.min(3, c.length), rr = rs.slice().sort(function () { return Math.random() - .5; });
|
||||
while (it.length < n) {
|
||||
k = c.splice(Math.floor(Math.random() * c.length), 1)[0]; ckHlUsed.push(k);
|
||||
it.push('<span class="hl-i' + (it.length ? '' : ' on') + '"><img src="../assets/img/mom/' + CL_AV[k % CL_AV.length] + '.jpg" alt="" loading="lazy"><u>' + esc(CL_NM[k]) + '</u><span>测出「' + esc(rr[it.length % rr.length]) + '」</span></span>');
|
||||
it.push('<span class="hl-i' + (it.length ? '' : ' on') + '"><img src="' + csSrc(CL_AV[k % CL_AV.length]) + '" alt="" loading="lazy"><u>' + esc(CL_NM[k]) + '</u><span>测出「' + esc(rr[it.length % rr.length]) + '」</span></span>');
|
||||
}
|
||||
return '<span class="ck-hl">' + it.join('') + '</span>';
|
||||
}
|
||||
@@ -1295,6 +1299,8 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
'甜甜圈', '小熊软糖', '一颗青梅', '冬冬妈', '可乐加冰', '麦穗儿', '云朵朵', '橘子汽水', '乐乐的妈', '荔枝', '蜜桃乌龙', '小葡萄'];
|
||||
var CL_AV = ['p02', 'm05', 'p05', 'm12', 'k04', 'p09', 'm16', 'p11', 'm07', 'k10', 'p03', 'm19', 'p13', 'm02', 'k06', 'p06', 'm10', 'p12', 'm21', 'p07', 'm04', 'k12', 'p14', 'm15',
|
||||
'p01', 'm01', 'k01', 'm03', 'p04', 'm06', 'k02', 'm08', 'p08', 'm09', 'k03', 'm11'];
|
||||
/* 11-05 用户:各模块头像不要重复(原来这 36 人和首页百宝箱轮播是同一批)→ 改用分配表 csTicker 的 24 个人设,昵称 + 头像只在测试页出现 */
|
||||
if (window.MB_AVA && MB_AVA.S.csTicker) { CL_NM = MB_AVA.S.csTicker.map(function (x) { return x[0]; }); CL_AV = MB_AVA.S.csTicker.map(function (x) { return x[1]; }); }
|
||||
/* 11-04 用户:「手气测挺好玩,要明显、让用户玩起来」→ 独立一块「摇一摇」:骰子闲时晃一晃;点了骰子翻滚、标题像老虎机一样转、越转越慢停在一个没测过的测试上,撒彩点后进入 */
|
||||
var DICE_P = { 1: [[12, 12]], 2: [[8, 8], [16, 16]], 3: [[7, 7], [12, 12], [17, 17]], 4: [[8, 8], [16, 8], [8, 16], [16, 16]], 5: [[7, 7], [17, 7], [12, 12], [7, 17], [17, 17]], 6: [[8, 6.5], [16, 6.5], [8, 12], [16, 12], [8, 17.5], [16, 17.5]] };
|
||||
function diceSVG(n) {
|
||||
@@ -1417,7 +1423,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
csvRecT.push(t.id); if (csvRecT.length > 6) csvRecT.shift(); /* 最近 6 条不出同一个测试 */
|
||||
for (k = 0; k < CL_NM.length; k++) if (csvRec.indexOf(k) < 0) c.push(k);
|
||||
k = c[Math.floor(Math.random() * c.length)]; csvRec.push(k); if (csvRec.length > 14) csvRec.shift(); /* 同屏 3 行 + 最近 14 个人不重复 */
|
||||
return '<button type="button" class="csv-i" data-test="' + t.id + '"><img src="../assets/img/mom/' + CL_AV[k] + '.jpg" alt="" width="22" height="22">' +
|
||||
return '<button type="button" class="csv-i" data-test="' + t.id + '"><img src="' + csSrc(CL_AV[k]) + '" alt="" width="22" height="22">' +
|
||||
'<span><em>' + esc(CL_NM[k]) + '</em>刚测出<b>「' + esc(r) + '」</b></span><small>' + esc(CS_SHORT[t.id] || '') + '</small></button>';
|
||||
}
|
||||
/* 11-04 用户:「此刻正在测下面一行太少,最多三行滚动」→ 同屏 3 行,新的一条从底下推上来,最上面那条淡出 */
|
||||
@@ -1439,7 +1445,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
csvLay(b);
|
||||
}
|
||||
if (tick % 3 === 0) { /* 头像堆换一个人 */
|
||||
var av = document.querySelectorAll('#csvAv img'); if (av.length) { var im = av[Math.floor(Math.random() * av.length)]; im.classList.add('sw'); setTimeout(function () { im.src = '../assets/img/mom/' + CS_AVP[csAvK++ % CS_AVP.length] + '.jpg'; im.classList.remove('sw'); }, 220); }
|
||||
var av = document.querySelectorAll('#csvAv img'); if (av.length) { var im = av[Math.floor(Math.random() * av.length)]; im.classList.add('sw'); setTimeout(function () { im.src = csSrc(CS_AVP[csAvK++ % CS_AVP.length]); im.classList.remove('sw'); }, 220); }
|
||||
}
|
||||
n = Math.max(Math.round(base * .93), Math.min(Math.round(base * 1.07), n + Math.round((Math.random() - .45) * 14)));
|
||||
var e = document.getElementById('csvN'); if (e) { e.textContent = n.toLocaleString(); e.classList.remove('bp'); void e.offsetWidth; e.classList.add('bp'); }
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<!-- 11-04 UGC 总开关关着时本页不展示,直接回首页(js/ugc.js) -->
|
||||
<script src="../../js/ugc.js?v=26110439" data-guard></script>
|
||||
<script src="../../js/ugc.js?v=26110440" data-guard></script>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<title>我的投稿</title>
|
||||
@@ -107,7 +107,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=26110439"></script>
|
||||
<script src="../topics.js?v=26110440"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
Reference in New Issue
Block a user