头像按模块分配互不重复:js/ava-pool.js(375 个装饰头像分 12 段),评论区让出这些人设改同类替补(v26110440)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
17
js/app.js
17
js/app.js
@@ -3,7 +3,7 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||
var VER = '26110439';
|
||||
var VER = '26110440';
|
||||
const $ = (s, c) => (c || document).querySelector(s);
|
||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||
|
||||
@@ -4199,11 +4199,12 @@
|
||||
妈妈近脸从 22 张砍到 14 张(去掉最像的几张),优先半身 / 户外 / 孕肚(m18~m22),每 3 个里最多 1 张妈妈脸;
|
||||
两池仍不相交:AVA_TOP 18 张、AVA_FEED 29 张。同日额度充上后补 14 张 p01~p14(孕妇全身、夫妻合照、一家三口、生活场景),
|
||||
两池各约 1/3 是 p*,妈妈近脸 m* 退到一半以下;AVA_TOP 23 张、AVA_FEED 37 张,仍不相交。 */
|
||||
const AVA_TOP = ['p01', 'k01', 's02', 'm20', 'p02', 'mom-03', 'k04', 'p03', 's05', 'baby-02', 'm13', 'p04', 'k06', 's09', 'p05', 'mom-11', 'k10', 'p06', 'm21', 's10', 'p07', 'baby-06', 'k12'];
|
||||
const AVA_FEED = ['p08', 'k02', 's01', 'm01', 'p09', 'k03', 'mom-05', 'p10', 's03', 'm18', 'k05', 'p11', 's04', 'baby-04', 'm22', 'p12', 'k07', 's06', 'mom-08', 'p13', 'm03', 'k08', 's07', 'p14', 'm19', 'k09', 's08', 'mom-14', 'm09', 'k11', 'baby-09', 'm11', 'k13', 'mom-17', 'm14', 'm15', 'm17'];
|
||||
/* 11-05 用户:各模块头像不要互相重复 → 改读 js/ava-pool.js 的分配表(pulseTop / pulseFeed),下面两行原表只作加载失败兜底 */
|
||||
const AVA_TOP = (window.MB_AVA && MB_AVA.S.pulseTop) || ['p01', 'k01', 's02', 'm20', 'p02', 'mom-03', 'k04', 'p03', 's05', 'baby-02', 'm13', 'p04', 'k06', 's09', 'p05', 'mom-11', 'k10', 'p06', 'm21', 's10', 'p07', 'baby-06', 'k12'];
|
||||
const AVA_FEED = (window.MB_AVA && MB_AVA.S.pulseFeed) || ['p08', 'k02', 's01', 'm01', 'p09', 'k03', 'mom-05', 'p10', 's03', 'm18', 'k05', 'p11', 's04', 'baby-04', 'm22', 'p12', 'k07', 's06', 'mom-08', 'p13', 'm03', 'k08', 's07', 'p14', 'm19', 'k09', 's08', 'mom-14', 'm09', 'k11', 'baby-09', 'm11', 'k13', 'mom-17', 'm14', 'm15', 'm17'];
|
||||
/* mom-* / baby-* 取自统一头像库 /_bridge/avatars/(2026-10-11 用户:「可以适当调几个我库里预存的头像,妈妈和宝宝的」);
|
||||
其余仍是 assets/img/mom/ 下的写实照片。库头像是 256px 透明底 PNG,底色由 .pr-ava / .pp-avs i 的 #FFE3D3 托住。 */
|
||||
const avaSrc = n => /^(mom|baby)-\d+$/.test(n) ? 'https://mp.yizhezhe.com/_bridge/avatars/' + n + '.png' : 'assets/img/mom/' + n + '.jpg';
|
||||
const avaSrc = n => /:|^\//.test(n) && window.MB_AVA ? MB_AVA.src(n, '') : /^(mom|baby)-\d+$/.test(n) ? 'https://mp.yizhezhe.com/_bridge/avatars/' + n + '.png' : 'assets/img/mom/' + n + '.jpg';
|
||||
const avaImg = n => '<img src="' + avaSrc(n) + '" alt="" loading="lazy" decoding="async" width="48" height="48">';
|
||||
const strSeed = t => { let x = 7; for (let i = 0; i < t.length; i++) x = (x * 31 + t.charCodeAt(i)) | 0; return Math.abs(x); };
|
||||
/* ================= 孕妈广场 · 首页入口(2026-11-01 第一版,占位内容) =================
|
||||
@@ -4235,7 +4236,7 @@
|
||||
一块可横滑的地面,话题是一个个说话气泡、气泡下站着一位妈妈的头像,一高一低「之」字形排开、轻轻浮动;
|
||||
背景一条虚线小路从每个头像脚下穿过,空地上零星散着几个在逛的小头像。隔一个气泡带照片(topics.js 的 ph);「全部」里都是热门,不再逐个挂「热」。 */
|
||||
const CAT_CN = { family: '家庭婚姻', work: '职场', baby: '经验' };
|
||||
const POOL = AVA_FEED.concat(AVA_TOP).filter(n => /^(p|m|mom-)\d/.test(n)); // 只用妈妈头像,k/s/baby 是孩子和风景
|
||||
const POOL = (window.MB_AVA && MB_AVA.S.gbWalk) || AVA_FEED.concat(AVA_TOP).filter(n => /^(p|m|mom-)\d/.test(n)); // 11-05 改用分配表 gbWalk(不和「此刻」撞)
|
||||
function bubble(t, i, allHot) {
|
||||
const ph = i % 2 === 0 && t.ph;
|
||||
return '<button type="button" class="gb-b' + (ph ? ' ph' : '') + (t.hot ? ' hot' : '') + '" data-t="' + esc(t.id) + '" style="--c1:' + t.c[0] + ';--c2:' + t.c[1] + ';--ink:' + t.ink + ';--d:' + (i % 5) * -.8 + 's">' +
|
||||
@@ -5552,7 +5553,7 @@
|
||||
if (!QA) loadQA().then(q => { if (q.length) renderSearch(wk, today, size); });
|
||||
$('#msWk').textContent = '孕 ' + W + ' 周';
|
||||
$('#msCnt').textContent = '孕 ' + W + ' 周的妈妈都在看';
|
||||
const pool = AVA_TOP.concat(AVA_FEED), s0 = (W * 7) % pool.length;
|
||||
const pool = (window.MB_AVA && MB_AVA.S.search) || AVA_TOP.concat(AVA_FEED), s0 = (W * 7) % pool.length; // 11-05 分配表 search
|
||||
$('#msAvs').innerHTML = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map(i => avaImg(pool[(s0 + i * 3) % pool.length])).join('');
|
||||
const bank = QA || [];
|
||||
let items;
|
||||
@@ -5608,8 +5609,8 @@
|
||||
const wan = n => n >= 1e4 ? (Math.round(n / 1e3) / 10) + '万' : String(Math.round(n));
|
||||
$('#qaHeroW').textContent = band ? '孕 ' + state.week + ' 周' : '大家都在问';
|
||||
$('#qaHeroT').textContent = '孕妈最常问的问题';
|
||||
const s0 = ((state.week || 1) * 5) % AVA_TOP.length;
|
||||
$('#qaHeroD').innerHTML = '<span class="qa-avs">' + [0, 1, 2, 3, 4].map(i => avaImg(AVA_TOP[(s0 + i * 2) % AVA_TOP.length])).join('') + '</span>' + wan(tot * 0.62) + ' 孕妈在这找答案';
|
||||
const QH = (window.MB_AVA && MB_AVA.S.qaHero) || AVA_TOP, s0 = ((state.week || 1) * 5) % QH.length; // 11-05 分配表 qaHero
|
||||
$('#qaHeroD').innerHTML = '<span class="qa-avs">' + [0, 1, 2, 3, 4].map(i => avaImg(QH[(s0 + i * 2) % QH.length])).join('') + '</span>' + wan(tot * 0.62) + ' 孕妈在这找答案';
|
||||
const QA_BD = i => i < 1 ? ['爆', 'bao'] : i < 7 ? ['热', 're'] : i < 10 ? ['新', 'xin'] : null;
|
||||
const QA_EM = { 身体: '🤰', 准备: '📋', 产检: '🩺', 宝宝: '👶', 生活: '🏠', 营养: '🥗', 职场: '💼', 花钱: '💰', 心情: '💗', 趣味: '🎈', 补剂: '💊', 专题: '📌' };
|
||||
const QA_KW = {
|
||||
|
||||
Reference in New Issue
Block a user