首页此刻改2行轮播;新增孕妈广场(首页横滑话题卡+15话题瀑布流+详情点赞评论,占位内容)v26110109
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
50
js/app.js
50
js/app.js
@@ -3,7 +3,7 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||
var VER = '26110108';
|
||||
var VER = '26110109';
|
||||
const $ = (s, c) => (c || document).querySelector(s);
|
||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||
|
||||
@@ -4181,6 +4181,52 @@
|
||||
const avaSrc = 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 第一版,占位内容) =================
|
||||
用户:「在此刻下边加一个广场,放一些话题……不要像『其他妈妈也在搜』那种列表形式」
|
||||
→ 一排横滑话题封面卡 + 家庭/经验小分段;话题表 window.GC_TOPICS(guangchang/topics.js,与广场页共用)。
|
||||
进广场是**本站子页**(不是别的 H5 应用),所以不走 jumpApp / 不报 last_app:
|
||||
相对路径 + 原样带上 location.hash(身份在 hash 里),换页前照例 reportHostLocation。 */
|
||||
(function initPlaza() {
|
||||
const sec = $('#gcHome'), row = $('#gchRow');
|
||||
const T = window.GC_TOPICS;
|
||||
if (!sec || !row || !Array.isArray(T) || !T.length) return;
|
||||
const esc = s => String(s == null ? '' : s).replace(/[&<>"]/g, c => ({ '&': '&', '<': '<', '>': '>', '"': '"' })[c]);
|
||||
const kfmt = n => n >= 10000 ? (n / 10000).toFixed(1).replace(/\.0$/, '') + '万' : n >= 1000 ? (n / 1000).toFixed(1).replace(/\.0$/, '') + 'k' : String(n);
|
||||
function go(id) {
|
||||
haptic();
|
||||
const url = 'guangchang/' + (id ? '?t=' + encodeURIComponent(id) : '') + location.hash;
|
||||
reportHostLocation(new URL(url, location.href).href);
|
||||
location.href = url;
|
||||
}
|
||||
function paint(cat) {
|
||||
const list = T.filter(t => !cat || t.cat === cat);
|
||||
row.innerHTML = list.map(t =>
|
||||
'<button type="button" class="gch-card" data-t="' + esc(t.id) + '" style="--c1:' + t.c[0] + ';--c2:' + t.c[1] + ';--ink:' + t.ink + '">' +
|
||||
'<i class="gb" aria-hidden="true"></i><span class="gg" aria-hidden="true">' + esc(t.g) + '</span>' +
|
||||
(t.hot ? '<span class="gh">热</span>' : '') +
|
||||
'<span class="gk">' + (t.cat === 'family' ? '家庭' : '经验') + '</span>' +
|
||||
'<span class="gn">' + esc(t.name) + '</span>' +
|
||||
'<span class="gm">' + kfmt(t.n) + ' 篇 · ' + kfmt(t.talk) + ' 人在聊</span></button>'
|
||||
).join('') +
|
||||
'<button type="button" class="gch-card all" data-t=""><span class="ga" aria-hidden="true">›</span><b>全部话题</b><small>' + T.length + ' 个话题</small></button>';
|
||||
row.scrollLeft = 0;
|
||||
}
|
||||
paint('');
|
||||
const talk = T.reduce((a, t) => a + (t.talk || 0), 0);
|
||||
$('#gchCnt').innerHTML = '<b>' + fmtNum(talk) + '</b> 位妈妈正在聊';
|
||||
$('#gchAvs').innerHTML = ['p05', 'm07', 's03', 'k09', 'm16'].map(n => '<img src="' + avaSrc(n) + '" alt="" loading="lazy">').join('');
|
||||
sec.classList.remove('hide');
|
||||
row.addEventListener('click', e => { const b = e.target.closest('.gch-card'); if (b) go(b.dataset.t); });
|
||||
$('#gchMore').addEventListener('click', () => go(''));
|
||||
$('#gchCat').addEventListener('click', e => {
|
||||
const b = e.target.closest('button[data-cat]');
|
||||
if (!b || b.classList.contains('on')) return;
|
||||
$$('#gchCat button').forEach(x => x.classList.toggle('on', x === b));
|
||||
haptic();
|
||||
paint(b.dataset.cat);
|
||||
});
|
||||
function fmtNum(n) { return String(n).replace(/\B(?=(\d{3})+(?!\d))/g, ','); }
|
||||
})();
|
||||
/* 「此刻」重绘钩子:足迹 / 档案 / 盲盒状态回来时调用(它们决定「和你比」「今日待办」和孕周) */
|
||||
let plHook = null;
|
||||
const fmtN = n => String(Math.round(n)).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||
@@ -4759,7 +4805,7 @@
|
||||
esc(what).replace(/(\d+)/g, '<em>$1</em>') + '</span>' +
|
||||
(go ? '<i class="pr-go" aria-hidden="true">›</i>' : '') + '</div>';
|
||||
}
|
||||
const FEED_N = 3; /* 常驻三行 */
|
||||
const FEED_N = 2; /* 常驻两行(2026-11-01 用户:三行轮播改两行;高度见 index.html .pl-feed3 覆盖) */
|
||||
const ROW_H = 30; /* = .pl-feed3 .pl-row 高度 */
|
||||
function tick() {
|
||||
const tr = $('#plTrack');
|
||||
|
||||
Reference in New Issue
Block a user