孕妈广场:首页加逛广场入口、帖子返回落广场首页;参差瀑布流+图上压字;分类·话题胶囊层级;话题名与179篇帖子口语化重写
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,9 @@
|
||||
#gcHome.gv4 .g4-cat button[data-cat=work].on{color:#3A72B8}
|
||||
#gcHome.gv4 .g4-cat button[data-cat=baby].on{color:#2E8A7C}
|
||||
#gcHome.gv4 .g4-sub{display:flex;align-items:center;gap:7px;margin:8px 0 0;font-size:12px;color:#9A817C}
|
||||
#gcHome.gv4 .g4-in{margin-left:auto;flex:none;height:26px;padding:0 6px 0 11px;border:0;border-radius:99px;background:linear-gradient(135deg,#FF8A9E,#F2627E);color:#fff;font-size:12px;font-weight:800;display:inline-flex;align-items:center;gap:1px;box-shadow:0 4px 10px -4px rgba(242,98,126,.7)}
|
||||
#gcHome.gv4 .g4-in i{font-style:normal;font-size:15px;line-height:1;margin-top:-1px}
|
||||
#gcHome.gv4 .g4-in:active{transform:scale(.95)}
|
||||
#gcHome.gv4 .g4-avs{display:flex}
|
||||
#gcHome.gv4 .g4-avs img{width:18px;height:18px;border-radius:50%;object-fit:cover;border:1.5px solid #fff;margin-left:-5px;background:#FFE3D3}
|
||||
#gcHome.gv4 .g4-avs img:first-child{margin-left:0}
|
||||
|
||||
@@ -34,20 +34,21 @@
|
||||
var hot = l.filter(function (t) { return t.hot; });
|
||||
return (cat ? hot : hot.filter(function (_, i) { return i % 3 === 0; })).concat(l.filter(function (t) { return !t.hot; })).slice(0, 3);
|
||||
}
|
||||
/* 11-02 用户:「进广场首页太深,只能点详情再返回」→ 点帖子只带 ?n=(返回落在广场首页,不落在单个话题);话题标签才带 ?t= */
|
||||
function go(id, nid) {
|
||||
location.href = 'guangchang/' + (id ? '?t=' + encodeURIComponent(id) + (nid ? '&n=' + encodeURIComponent(nid) : '') : '') + location.hash;
|
||||
location.href = 'guangchang/' + (nid ? '?n=' + encodeURIComponent(nid) : id ? '?t=' + encodeURIComponent(id) : '') + location.hash;
|
||||
}
|
||||
|
||||
sec.className = sec.className.replace(/\bgv\d\b/g, '') + ' gv4';
|
||||
sec.innerHTML =
|
||||
'<div class="g4-head"><h2 class="g4-title"><span>孕妈广场</span></h2>' +
|
||||
'<span class="g4-cat" role="tablist" aria-label="话题分类"><button type="button" class="on" data-cat="">全部</button><button type="button" data-cat="family">家庭婚姻</button><button type="button" data-cat="work">职场</button><button type="button" data-cat="baby">经验</button></span></div>' +
|
||||
'<div class="g4-sub"><span class="g4-avs" aria-hidden="true">' + ['p05', 'm07', 'p11', 'm16'].map(function (n) { return '<img src="' + ava(n) + '" alt="" loading="lazy">'; }).join('') + '</span><span>翻一翻,看看其他妈妈的故事</span></div>' +
|
||||
'<div class="g4-sub"><span class="g4-avs" aria-hidden="true">' + ['p05', 'm07', 'p11', 'm16'].map(function (n) { return '<img src="' + ava(n) + '" alt="" loading="lazy">'; }).join('') + '</span><span>翻一翻,看看其他妈妈的故事</span><button type="button" class="g4-in">逛广场<i>›</i></button></div>' +
|
||||
'<div class="g4-stage"><div class="g4-deck" aria-live="polite"></div>' +
|
||||
'<div class="g4-rail"><span class="g4-pg"><b>1</b><i>/8</i></span>' +
|
||||
'<button type="button" class="g4-arr prev" aria-label="上一张">‹</button><button type="button" class="g4-arr next" aria-label="下一张">›</button></div></div>' +
|
||||
'<div class="g4-tags"></div>' +
|
||||
'<div class="g4-foot"><button type="button" class="g4-all">去广场看全部 ' + T.length + ' 个话题 ›</button><span class="g4-mark">效果稿 V4</span></div>';
|
||||
'<div class="g4-foot"><button type="button" class="g4-all">进孕妈广场,看全部 ' + (window.GC_FEED ? window.GC_FEED.length + ' 篇分享' : T.length + ' 个话题') + ' ›</button><span class="g4-mark">效果稿 V4</span></div>';
|
||||
sec.classList.remove('hide');
|
||||
|
||||
var deck = sec.querySelector('.g4-deck'), pgB = sec.querySelector('.g4-pg b'), pgI = sec.querySelector('.g4-pg i'), tags = sec.querySelector('.g4-tags');
|
||||
@@ -161,16 +162,17 @@
|
||||
var c = e.target.closest('.g4-card');
|
||||
if (!c) return;
|
||||
if (c !== cards[idx]) { next(); return; } // 点到后面露出的卡角 → 翻到下一张
|
||||
go(c.dataset.sub ? '' : c.dataset.t, c.dataset.n);
|
||||
go(c.dataset.sub ? '' : c.dataset.t, c.dataset.sub ? '' : c.dataset.n);
|
||||
});
|
||||
deck.addEventListener('keydown', function (e) {
|
||||
if (e.key === 'ArrowRight') next(); else if (e.key === 'ArrowLeft') prev();
|
||||
else if (e.key === 'Enter') { var c = cards[idx]; if (c) go(c.dataset.sub ? '' : c.dataset.t, c.dataset.n); }
|
||||
else if (e.key === 'Enter') { var c = cards[idx]; if (c) go(c.dataset.sub ? '' : c.dataset.t, c.dataset.sub ? '' : c.dataset.n); }
|
||||
});
|
||||
sec.querySelector('.g4-arr.next').addEventListener('click', next);
|
||||
sec.querySelector('.g4-arr.prev').addEventListener('click', prev);
|
||||
tags.addEventListener('click', function (e) { var b = e.target.closest('button[data-t]'); if (b) go(b.dataset.t); });
|
||||
sec.querySelector('.g4-all').addEventListener('click', function () { go(''); });
|
||||
sec.querySelector('.g4-in').addEventListener('click', function () { go(''); });
|
||||
sec.querySelector('.g4-cat').addEventListener('click', function (e) {
|
||||
var b = e.target.closest('button[data-cat]');
|
||||
if (!b || b.dataset.cat === cur) return; // 「全部」里滑块跟着卡片跳,所以按当前筛选判断,不按高亮判断
|
||||
@@ -185,5 +187,5 @@
|
||||
}
|
||||
/* feed.js 首页默认不加载(index.html 只引了 topics.js),这里按需拉一次 */
|
||||
if (window.GC_FEED) init();
|
||||
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110204'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
|
||||
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110205'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
|
||||
})();
|
||||
|
||||
1220
guangchang/data.js
1220
guangchang/data.js
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -112,6 +112,26 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
.th .join .ic{width:14px;height:14px}
|
||||
.th .sw{height:34px;padding:0 14px;border-radius:99px;background:rgba(255,255,255,.8);color:var(--ht);font-size:13px;font-weight:800}
|
||||
|
||||
/* ---------- 层级:分类 · 话题胶囊(11-02) ---------- */
|
||||
.lvw{margin:16px 0 0}
|
||||
.lvw .lv{display:flex;align-items:baseline;gap:8px;padding:0 14px}
|
||||
.lvw .lv h2{margin:0;font-size:17px;font-weight:900;letter-spacing:.3px;color:var(--kt)}
|
||||
.lvw .lv small{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
|
||||
.lvw .lv .ba{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--kt)}
|
||||
.tcs{display:flex;gap:7px;padding:9px 12px 2px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
|
||||
.tcs::-webkit-scrollbar{display:none}
|
||||
.tcs::after{content:"";flex:none;width:4px}
|
||||
.tcs button{flex:none;height:30px;padding:0 11px;border-radius:99px;background:#fff;border:1px solid #EFE1DB;font-size:12.5px;font-weight:700;color:#5E4E4A;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
|
||||
.tcs button i{font-style:normal;font-size:11px;font-weight:800;color:#B59A93;font-variant-numeric:tabular-nums}
|
||||
.tcs button.on{background:var(--kf);border-color:var(--kf);color:#fff;box-shadow:0 5px 12px -6px var(--kf)}
|
||||
.tcs button.on i{color:rgba(255,255,255,.85)}
|
||||
.th .bc{position:relative;display:flex;align-items:center;gap:6px}
|
||||
.th .bc button{display:inline-flex}
|
||||
.th .bc span:last-child{font-size:12px;font-weight:700;color:var(--ht)}
|
||||
|
||||
.mo{display:block;width:calc(100% - 24px);margin:14px 12px 0;padding:13px 14px;border-radius:16px;text-align:center;background:linear-gradient(150deg,var(--kl),var(--kl2))}
|
||||
.mo small{display:block;font-size:11.5px;font-weight:600;color:#9A817C}
|
||||
.mo b{display:block;margin-top:3px;font-size:14.5px;font-weight:900;color:var(--kt)}
|
||||
/* ---------- 瀑布流 ---------- */
|
||||
.wf{display:flex;align-items:flex-start;gap:8px;padding:10px 12px 0}
|
||||
.wf .col{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
|
||||
@@ -151,6 +171,16 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
.cv.ph .kb{position:absolute;left:.95em;top:.95em;z-index:1;box-shadow:0 2px 6px rgba(0,0,0,.12)}
|
||||
.cv .wm{position:absolute;right:-.1em;bottom:-.25em;font-size:5.6em;font-weight:900;line-height:1;color:#fff;opacity:.55;font-family:"STKaiti","KaiTi","Kaiti SC",serif;pointer-events:none;z-index:0}
|
||||
|
||||
/* 图上压字(11-02 用户:文字放到图片上穿插来,小红书式):ov 底部渐变大字 / tg 贴纸字 */
|
||||
.nc .ovt{position:absolute;left:0;right:0;bottom:0;padding:34px 10px 10px;background:linear-gradient(transparent,rgba(30,18,14,.62));color:#fff;pointer-events:none}
|
||||
.nc .ovt b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:17px;font-weight:900;line-height:1.3;letter-spacing:.5px;text-shadow:0 1px 4px rgba(0,0,0,.25)}
|
||||
.nc .ovt small{display:block;margin-top:4px;font-size:11px;font-weight:700;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
||||
.nc .tgt{position:absolute;left:9px;right:9px;bottom:12px;pointer-events:none}
|
||||
.nc .tgt b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;font-weight:900;line-height:1.55;color:#2A1E1E}
|
||||
.nc .tgt span{background:#FFF2A6;padding:1px 5px;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px}
|
||||
.nc:nth-child(odd) .tgt span{background:#fff}
|
||||
.nc .ovt~*,.nc .tgt~*{display:none}
|
||||
|
||||
/* ---------- 详情层 ---------- */
|
||||
#dt{position:fixed;inset:0;z-index:40;background:#fff;transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
|
||||
#dt.show{transform:none}
|
||||
@@ -367,6 +397,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
<div id="head"></div>
|
||||
<div class="sh" id="fh"></div>
|
||||
<div class="wf" id="wf"><div class="col"></div><div class="col"></div></div>
|
||||
<div id="more"></div>
|
||||
<div class="end"><b>— 到底啦 —</b><small>内容为示例占位,正式版将替换为妈妈们的真实分享</small></div>
|
||||
</div>
|
||||
|
||||
@@ -402,9 +433,9 @@ 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=26110204"></script>
|
||||
<script src="data.js?v=26110204"></script>
|
||||
<script src="feed.js?v=26110204"></script>
|
||||
<script src="topics.js?v=26110205"></script>
|
||||
<script src="data.js?v=26110205"></script>
|
||||
<script src="feed.js?v=26110205"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -439,13 +470,15 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
/* ---------- 笔记:data.js 的原始内容 + 确定性补字段(id / 封面样式 / 比例 / 评论) ---------- */
|
||||
var NOTES = [], NBY = {}; /* 真实投稿到达后会往前插(loadApproved),所以 NOTES / MIXED 用 var 可重赋值 */
|
||||
var RATIO = [1.12, 0.94, 1.04, 0.88, 1.18, 0.98, 0.9];
|
||||
/* 11-02 用户:「要参差不齐的小红书瀑布流,现在都横向对齐」→ 照片封面高度按 id 哈希在 0.95~1.45 之间取,不再统一 1.3 */
|
||||
var PR = [1.33, 1.05, 1.25, 1.45, 1.15, 0.95, 1.38, 1.2];
|
||||
T.forEach(function (t, ti) {
|
||||
var d = D[t.id]; if (!d) return;
|
||||
(d.notes || []).forEach(function (n, i) {
|
||||
var o = {
|
||||
id: t.id + '-' + (i + 1), t: t.id, i: i, title: n.title, cover: n.cover || n.title, coverSub: n.coverSub || '',
|
||||
author: n.author, stage: n.stage, likes: +n.likes || 0, body: n.body || '',
|
||||
ratio: n.photo ? 1.3 : RATIO[(ti + i * 3) % RATIO.length], tone: (ti + i) % 3, photo: n.photo || ''
|
||||
ratio: n.photo ? PR[seed(t.id + '-' + (i + 1) + 'r') % PR.length] : RATIO[(ti + i * 3) % RATIO.length], tone: (ti + i) % 3, photo: n.photo || ''
|
||||
};
|
||||
NOTES.push(o); NBY[o.id] = o;
|
||||
});
|
||||
@@ -516,10 +549,14 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
var on = liked(n.id);
|
||||
return '<span class="lk' + (on ? ' on' : '') + '" data-like="' + n.id + '" role="button" aria-label="点赞"><svg class="ic"><use href="#i-heart' + (on ? '-f' : '') + '"/></svg>' + cfmt(likeN(n)) + '</span>';
|
||||
}
|
||||
function cardHTML(n, showTopic) {
|
||||
var t = TBY[n.t];
|
||||
return '<button type="button" class="nc" data-id="' + n.id + '"><div class="cvw">' +
|
||||
coverHTML(n, 'calc(var(--cw) * ' + n.ratio + ')') + '</div>' +
|
||||
/* 卡片样式 sty(只对照片封面):'' 普通图 / 'ov' 图上压大字(底部渐变)/ 'tg' 图上贴纸字 —— 11-02 用户:「把一些文字放到图片上,穿插着来,类似小红书」 */
|
||||
function cardHTML(n, showTopic, sty) {
|
||||
var t = TBY[n.t], r = n.ratio, ov = '';
|
||||
if (!n.photo) sty = '';
|
||||
if (sty === 'ov') { r = Math.max(r, 1.28); ov = '<div class="ovt"><b>' + esc(n.cover) + '</b>' + (n.coverSub ? '<small>' + esc(n.coverSub) + '</small>' : '') + '</div>'; }
|
||||
else if (sty === 'tg') ov = '<div class="tgt"><b><span>' + esc(n.cover) + '</span></b></div>';
|
||||
return '<button type="button" class="nc' + (sty ? ' s-' + sty : '') + '" data-id="' + n.id + '"><div class="cvw">' +
|
||||
coverHTML(n, 'calc(var(--cw) * ' + r + ')') + ov + '</div>' +
|
||||
'<div class="nb"><h3>' + esc(n.title) + '</h3>' + (showTopic ? '<span class="tp k-' + t.cat + '"># ' + esc(t.name) + '</span>' : '') + '<div class="nf"><img src="' + esc(avOf(n)) + '" alt="" loading="lazy"><span class="nm">' + esc(n.author) + '</span>' + likeHTML(n) + '</div></div></button>';
|
||||
}
|
||||
|
||||
@@ -565,14 +602,29 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
'<h3># ' + esc(x.name) + '</h3><p>' + esc((D[x.id] || {}).desc || '') + '</p>' +
|
||||
'<button type="button" class="jn" data-join="' + x.id + '"><svg class="ic"><use href="#i-plus"/></svg>参与话题</button></div>';
|
||||
}).join('') + '</div>';
|
||||
fh.innerHTML = '<h2>' + (catF ? CAT_NAME[catF] : '大家在聊') + '</h2>' + (catF ? '<small>' + CAT_SUB[catF] + '</small>' : '');
|
||||
if (catF) { fhLevels(fh); return; }
|
||||
fh.className = 'sh';
|
||||
fh.innerHTML = '<h2>大家在聊</h2><small>' + T.filter(function (x) { return cntT(x.id); }).length + ' 个话题 · 共 ' + NOTES.length + ' 篇</small>';
|
||||
return;
|
||||
}
|
||||
var d = D[t.id] || {};
|
||||
el.innerHTML = '<div class="th k-' + t.cat + '"><i class="wm" aria-hidden="true">' + esc(t.g) + '</i><button type="button" class="x" data-t="" aria-label="看全部"><svg class="ic"><use href="#i-x"/></svg></button>' +
|
||||
kbHTML(t.cat) + '<h2><em>#</em>' + esc(t.name) + '</h2><p>' + esc(d.desc || '') + '</p>' +
|
||||
'<div class="bc"><button type="button" data-t="">' + kbHTML(t.cat).replace('</span>', ' ›</span>') + '</button><span>话题 · ' + cntT(t.id) + ' 篇</span></div>' +
|
||||
'<h2><em>#</em>' + esc(t.name) + '</h2><p>' + esc(d.desc || '') + '</p>' +
|
||||
'<div class="tf"><button type="button" class="join" data-join="' + t.id + '"><svg class="ic"><use href="#i-plus"/></svg>参与话题</button><button type="button" class="sw" data-all="1">换个话题</button></div></div>' + rewardHTML(true);
|
||||
fh.innerHTML = '<h2>这个话题下的分享</h2>';
|
||||
fhLevels(fh);
|
||||
}
|
||||
/* 11-02 用户:「选了家庭婚姻下一个话题,看着像这块就这几篇,层次感没出来」→ 选了分类 / 话题时,列表上方固定一行「分类 · N 个话题 · 共 M 篇」+ 该分类全部话题胶囊(带篇数),当前话题高亮,「全部」回分类 */
|
||||
var cntT = function (id) { return NOTES.filter(function (n) { return n.t === id; }).length; };
|
||||
function fhLevels(fh) {
|
||||
var tl = hotList().filter(function (x) { return cntT(x.id); }), all = 0;
|
||||
tl.forEach(function (x) { all += cntT(x.id); });
|
||||
fh.className = 'lvw k-' + catF;
|
||||
fh.innerHTML = '<div class="lv"><h2>' + CATS.filter(function (c) { return c[0] === catF; })[0][1] + '</h2><small>' + tl.length + ' 个话题 · 共 ' + all + ' 篇</small>' +
|
||||
(cur ? '<button type="button" class="ba" data-t="">看这块全部 ›</button>' : '') + '</div>' +
|
||||
'<div class="tcs"><button type="button" data-t=""' + (cur ? '' : ' class="on"') + '>全部<i>' + all + '</i></button>' +
|
||||
tl.map(function (x) { return '<button type="button" data-t="' + x.id + '"' + (cur === x.id ? ' class="on"' : '') + '># ' + esc(x.name) + '<i>' + cntT(x.id) + '</i></button>'; }).join('') + '</div>';
|
||||
var on = fh.querySelector('.tcs .on'); if (on && cur) fh.querySelector('.tcs').scrollLeft = Math.max(0, on.offsetLeft - 60);
|
||||
}
|
||||
function renderFeed() {
|
||||
var list = cur ? NOTES.filter(function (n) { return n.t === cur; }) : MIXED.filter(function (n) { return inCat(TBY[n.t]); });
|
||||
@@ -583,14 +635,20 @@ 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');
|
||||
var hs = [0, 0], tmp = document.createElement('div'), STY = ['', 'ov', '', '', 'tg', '', '', 'ov', '', 'tg', '', ''];
|
||||
list.forEach(function (n, k) {
|
||||
tmp.innerHTML = cardHTML(n, !cur);
|
||||
tmp.innerHTML = cardHTML(n, !cur, STY[k % STY.length]);
|
||||
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;
|
||||
});
|
||||
/* 话题下帖子看完,接着引到同分类其他话题,避免以为这块只有这几篇 */
|
||||
var mo = $('#more'), tc = cur && TBY[cur];
|
||||
if (tc) {
|
||||
var rest = NOTES.filter(function (n) { return n.t !== cur && TBY[n.t].cat === tc.cat; }).length;
|
||||
mo.innerHTML = '<button type="button" class="mo k-' + tc.cat + '" data-t=""><small>这个话题就这些啦</small><b>「' + CATS.filter(function (c) { return c[0] === tc.cat; })[0][1] + '」还有 ' + rest + ' 篇,去看看 ›</b></button>';
|
||||
} else mo.innerHTML = '';
|
||||
}
|
||||
function setQuery(t, n) {
|
||||
var q = new URLSearchParams(location.search);
|
||||
@@ -615,6 +673,13 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
catF = b.dataset.c; haptic();
|
||||
selectTopic(''); /* 换分类回到该类「全部」,避免停在别类话题上 */
|
||||
});
|
||||
$('#fh').addEventListener('click', function (e) {
|
||||
var b = e.target.closest('[data-t]'); if (!b || b.dataset.t === cur) return;
|
||||
haptic(); var sl = $('#fh .tcs') ? $('#fh .tcs').scrollLeft : 0;
|
||||
selectTopic(b.dataset.t, false);
|
||||
var tc = $('#fh .tcs'); if (tc && !b.dataset.t) tc.scrollLeft = sl;
|
||||
});
|
||||
$('#more').addEventListener('click', function (e) { if (e.target.closest('[data-t]')) { haptic(); selectTopic(''); } });
|
||||
$('#head').addEventListener('click', function (e) {
|
||||
var j = e.target.closest('[data-join]'); if (j) { haptic(); openRule(j.dataset.join); return; }
|
||||
if (e.target.closest('[data-rule]')) { openRule(''); return; }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* 孕妈广场 · 话题表(11-02 用户:标题口语化、别太负面 → 40 个话题名全部改成口语正向版,id 不变;2026-11-01 第三版:按用户给的选题清单,分 家庭 / 婚姻 / 职场 / 母婴 四块,每块 10 个;占位内容,纯前端)
|
||||
/* 孕妈广场 · 话题表(11-02 用户:标题要更口语、说人话、像小红书 → 40 个话题名第二次改写;此前一版口语正向版,id 不变;2026-11-01 第三版:按用户给的选题清单,分 家庭 / 婚姻 / 职场 / 母婴 四块,每块 10 个;占位内容,纯前端)
|
||||
首页「孕妈广场」横滑卡(js/app.js initPlaza)和广场页(guangchang/index.html)共用这一份。
|
||||
⚠️ 篇数 / 在聊人数是占位数字,正式版接后端后替换;广场页底部有一行「示例占位」说明。
|
||||
字段:id 话题 id(广场页 ?t=)· name 名称 · cat family 家庭 / marriage 婚姻 / work 职场 / baby 母婴 · g 封面水印字
|
||||
@@ -11,46 +11,46 @@
|
||||
baby: { c: ['#E0F3EE', '#B8E3D8'], ink: '#21705F' }
|
||||
};
|
||||
var L = [
|
||||
['family', 'f01', '怀孕后家里的叮嘱一下子多起来了', '叨', 1],
|
||||
['family', 'f02', '长辈的老经验,我是这样接话的', '老', 1],
|
||||
['family', 'f01', '怀孕后,我妈的电话一天比一天多', '叨', 1],
|
||||
['family', 'f02', '长辈那套老说法,我是这么接的', '老', 1],
|
||||
['family', 'f03', '亲戚随口一句话,我琢磨了一下午', '琢'],
|
||||
['family', 'f04', '两家人生活习惯不一样,慢慢磨合中', '齐'],
|
||||
['family', 'f05', '家人关心太多的时候,我这样给自己留点空间', '空', 1],
|
||||
['family', 'f06', '不住一起,也天天收到家人的叮嘱', '嘱'],
|
||||
['family', 'f07', '两代人养胎观念不一样,各退一步就好', '代'],
|
||||
['family', 'f08', '孕期在家安安静静,也挺好的', '静'],
|
||||
['family', 'f09', '过节走亲戚,大家都围着我的肚子聊', '节'],
|
||||
['family', 'f10', '娘家的惦记和婆家的操心,都是心意', '味'],
|
||||
['marriage', 'm01', '怀孕以后,我们俩的家务分工变了', '分', 1],
|
||||
['marriage', 'm02', '孕期那些小委屈,后来都说开了', '说'],
|
||||
['marriage', 'm03', '他不太会安慰人,但一直在学', '学'],
|
||||
['marriage', 'm04', '孕期夜里睡不着,他陪我聊到天亮', '夜'],
|
||||
['marriage', 'm05', '怀孕后和老公拌嘴,后来这样和好', '和'],
|
||||
['marriage', 'm06', '比起礼物,我更想要他一句「辛苦了」', '见', 1],
|
||||
['marriage', 'm07', '怀孕后,浪漫变成了一起商量小事', '琐'],
|
||||
['marriage', 'm08', '夫妻间那些「小事」,我们这样聊开', '小'],
|
||||
['marriage', 'm09', '宝宝要来了,我们俩的日子也在慢慢变', '盼'],
|
||||
['marriage', 'm10', '他终于知道,养胎不是在家休息', '懂', 1],
|
||||
['work', 'w01', '怀孕上班,什么时候告诉领导合适', '言', 1],
|
||||
['work', 'w02', '第一次请产检假,其实没那么难开口', '假', 1],
|
||||
['work', 'w03', '上班孕妈,我是这样照顾好自己的', '职'],
|
||||
['work', 'w04', '一边上班,一边惦记肚子里的小家伙', '惦'],
|
||||
['work', 'w05', '上班时不舒服,我学会了及时说出来', '说'],
|
||||
['work', 'w06', '同事们的关心,让我暖了一整天', '暖'],
|
||||
['work', 'w07', '生完还能回原岗位吗?听听过来人怎么说', '岗'],
|
||||
['work', 'w08', '把项目交出去那天,心里有点不舍', '交'],
|
||||
['work', 'w09', '孕期上班,我给自己划了几条舒服的线', '界'],
|
||||
['work', 'w10', '上班孕妈的一天,原来这么充实', '忙', 1],
|
||||
['baby', 'b01', '孕期那些小不舒服,大家都是怎么缓解的', '缓', 1],
|
||||
['baby', 'b02', '还没出生,宝宝的开销已经安排上了', '钱'],
|
||||
['baby', 'b03', '育儿内容刷多了,我学会了挑着看', '挑', 1],
|
||||
['baby', 'b04', '囤货这件事,过来人教我别囤太多', '囤'],
|
||||
['baby', 'b05', '孕期体重,我是这样慢慢管住的', '重'],
|
||||
['baby', 'b06', '每天数胎动,是我和宝宝的小默契', '动'],
|
||||
['baby', 'b07', '顺产还是剖腹产,听听过来人的经历', '生'],
|
||||
['baby', 'b08', '有点怕生孩子?我是这样慢慢放松的', '松', 1],
|
||||
['baby', 'b09', '孕期忌口,哪些真要忌、哪些不用太纠结', '忌'],
|
||||
['baby', 'b10', '怀孕以后,身体悄悄发生的那些变化', '变']
|
||||
['family', 'f04', '娘家婆家习惯不一样,我夹在中间当翻译', '齐'],
|
||||
['family', 'f05', '关心太多有点招架不住,我给自己留了点空间', '空', 1],
|
||||
['family', 'f06', '不住一起,叮嘱照样每天准时到', '嘱'],
|
||||
['family', 'f07', '我妈让我躺着养,医生说多走走', '代'],
|
||||
['family', 'f08', '怀孕后我变宅了,在家待着也挺香', '静'],
|
||||
['family', 'f09', '过年回家,全家围着我的肚子猜男女', '节'],
|
||||
['family', 'f10', '我妈寄吃的,婆婆也寄吃的', '味'],
|
||||
['marriage', 'm01', '怀孕后,家务换他来干了', '分', 1],
|
||||
['marriage', 'm02', '憋着的小委屈,说出来就好了', '说'],
|
||||
['marriage', 'm03', '他嘴笨,但一直在学怎么哄我', '学'],
|
||||
['marriage', 'm04', '半夜睡不着,他陪我聊到天亮', '夜'],
|
||||
['marriage', 'm05', '怀孕后跟老公拌嘴,我们这样和好', '和'],
|
||||
['marriage', 'm06', '不要礼物,就想听他说句「辛苦了」', '见', 1],
|
||||
['marriage', 'm07', '以前约会看电影,现在一起研究产检单', '琐'],
|
||||
['marriage', 'm08', '挤牙膏这种小事,我们也能拌两句', '小'],
|
||||
['marriage', 'm09', '宝宝快来了,我们俩的日子在悄悄变', '盼'],
|
||||
['marriage', 'm10', '他终于知道,养胎不是躺着玩手机', '懂', 1],
|
||||
['work', 'w01', '怀孕了,啥时候跟领导说', '言', 1],
|
||||
['work', 'w02', '第一次请产检假,我在门口转了三圈', '假', 1],
|
||||
['work', 'w03', '上班孕妈的自救小妙招', '职'],
|
||||
['work', 'w04', '开会的时候,宝宝踢了我一脚', '惦'],
|
||||
['work', 'w05', '上班不舒服,别硬撑,说出来', '说'],
|
||||
['work', 'w06', '同事一杯热水,暖了我一整天', '暖'],
|
||||
['work', 'w07', '生完回去,位置还是我的吗?过来人说说', '岗'],
|
||||
['work', 'w08', '把带了两年的项目交出去那天', '交'],
|
||||
['work', 'w09', '怀孕上班,我给自己定了几条规矩', '界'],
|
||||
['work', 'w10', '上班孕妈的一天,比你想的忙', '忙', 1],
|
||||
['baby', 'b01', '孕吐、烧心、腿抽筋,大家都怎么缓过来的', '缓', 1],
|
||||
['baby', 'b02', '宝宝还没生,钱已经花出去不少', '钱'],
|
||||
['baby', 'b03', '育儿攻略刷多了,我学会挑着看', '挑', 1],
|
||||
['baby', 'b04', '囤货过来人:这些真用不上', '囤'],
|
||||
['baby', 'b05', '孕期体重,我这样一点点稳住的', '重'],
|
||||
['baby', 'b06', '每天数胎动,是我和宝宝的暗号', '动'],
|
||||
['baby', 'b07', '顺产还是剖,过来人说说真实感受', '生'],
|
||||
['baby', 'b08', '快生了心里没底?听听过来人怎么说', '松', 1],
|
||||
['baby', 'b09', '这也不能吃那也不能吃?其实没那么多讲究', '忌'],
|
||||
['baby', 'b10', '怀孕后身体的这些变化,你中了几个', '变']
|
||||
];
|
||||
/* 首页横滑卡的照片(11-01 用户:首页广场也放一些真实图):取该话题第一篇照片笔记的封面,图在 guangchang/img/;data.js 太大首页不加载,所以抄一份到这里,换图后要同步 */
|
||||
var PH = {"f01":"c2807377d0dd.jpg","f02":"5cc12b5ca19d.jpg","f03":"c1aeeff8c596.jpg","f04":"bcfe0afdde7c.jpg","f05":"f884c0209db9.jpg","f06":"cbd9db78f705.jpg","f07":"c04f5a22e224.jpg","f08":"2cac4ef6500f.jpg","f09":"8f974da03cfa.jpg","f10":"b2b5e91a4553.jpg","m01":"e0118088acf0.jpg","m02":"0b5b852dd448.jpg","m03":"32744c66d8cb.jpg","m04":"dc0e74c1f385.jpg","m05":"ec0314894337.jpg","m06":"eb20a272d965.jpg","m07":"14ce1f9686ee.jpg","m08":"5db0ce8c9d52.jpg","m09":"9ca7ad933408.jpg","m10":"6c2c8052d6f4.jpg","w01":"874abee3d741.jpg","w02":"41ceb30d229a.jpg","w03":"f3f33bbeba33.jpg","w04":"6b374c98a040.jpg","w05":"bd8a5ddc39f5.jpg","w06":"de364ef85902.jpg","w07":"4f3ee7186428.jpg","w08":"cf9253836cf2.jpg","w09":"209084ea24fb.jpg","w10":"9e1feb87c814.jpg","b01":"63659dd16d92.jpg","b02":"c5443c035a02.jpg","b03":"15397c17240a.jpg","b04":"269846ead50f.jpg","b05":"81541ebb328d.jpg","b06":"1bff7a1aad8e.jpg","b07":"6440eaf30b5a.jpg","b08":"37815563fb9a.jpg","b09":"b0910125c744.jpg","b10":"5b7ba031e33d.jpg"};
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>兜爸心选 · 孕育陪伴</title>
|
||||
<!-- V:26110204 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<!-- V:26110205 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<link rel="stylesheet" href="mama-box.css">
|
||||
<link rel="stylesheet" href="night.css">
|
||||
<!-- 夜晚模式:首屏绘制前就按上次的选择加 class,避免先白后黑闪一下(开关在首页右上角 #nightBtn,逻辑见 app.js) -->
|
||||
@@ -2492,7 +2492,7 @@
|
||||
<script src="/_bridge/avatar-picker.js?v=26101105"></script>
|
||||
<script src="/_bridge/hand-icons.js?v=26101202"></script>
|
||||
<script src="js/zodiac-art.js"></script>
|
||||
<script src="guangchang/topics.js?v=26110204"></script>
|
||||
<script src="guangchang/topics.js?v=26110205"></script>
|
||||
<script src="js/app.js"></script>
|
||||
<script>
|
||||
/* 11-02 首页「孕妈广场」效果稿:地址带 ?gcv=1~6 时,把 #gcHome 换成 demo/gch/vN.css + vN.js 的版式并滚到这一块。
|
||||
@@ -2500,7 +2500,7 @@
|
||||
(function () {
|
||||
var m = location.search.match(/[?&]gcv=([1-6])(?:&|$)/);
|
||||
if (!m) window.__gcDefault = 1;
|
||||
var n = m ? m[1] : '6', l = document.createElement('link'), s = document.createElement('script'), q = m ? Date.now() : 'v=26110204';
|
||||
var n = m ? m[1] : '6', l = document.createElement('link'), s = document.createElement('script'), q = m ? Date.now() : 'v=26110205';
|
||||
l.rel = 'stylesheet'; l.href = 'demo/gch/v' + n + '.css?' + q;
|
||||
s.src = 'demo/gch/v' + n + '.js?' + q;
|
||||
if (m) s.onload = function () { setTimeout(function () { var el = document.getElementById('gcHome'); if (el) el.scrollIntoView({ block: 'center' }); }, 900); };
|
||||
|
||||
Reference in New Issue
Block a user