摇一摇加音效(Web Audio 合成,可关)+ 落定后「就它了 / 重新摇」;百问核心词改上图下字(v26110401)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -320,9 +320,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=26110299"></script>
|
||||
<script src="meta.js?v=26110299"></script>
|
||||
<script src="tests.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script src="meta.js?v=26110401"></script>
|
||||
<script src="tests.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
@@ -314,6 +314,16 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
.lko-card .lko-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--cb);box-shadow:0 6px 14px -6px var(--cb);position:relative}
|
||||
.lko-card .lko-ic svg{width:30px;height:30px}
|
||||
.lko-fx{position:absolute;left:50%;top:50%;pointer-events:none}
|
||||
.lko-act{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s,transform .3s cubic-bezier(.3,1.4,.5,1)}
|
||||
.lko.done .lko-act{opacity:1;transform:none;pointer-events:auto}
|
||||
.lko:not(.hit) .lko-act{display:none}
|
||||
.lko-go{height:50px;border-radius:99px;background:linear-gradient(120deg,#FFD25A,#FF9A4D);color:#5A2A00;font-size:17px;font-weight:900;letter-spacing:1px;box-shadow:0 10px 22px -10px rgba(255,150,60,.9);animation:lkPulse 1.8s ease-in-out infinite}
|
||||
.lko-re{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;border-radius:99px;background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55);color:#fff;font-size:15px;font-weight:800}
|
||||
.lko-re svg{width:22px;height:22px}
|
||||
.lko-x,.lko-snd{position:absolute;top:calc(14px + env(safe-area-inset-top));z-index:2;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:24px;line-height:36px;text-align:center}
|
||||
.lko-x{right:14px}.lko-snd{left:14px}
|
||||
.lko-snd::before{content:"";position:absolute;inset:0;background:center/20px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9.5h3.5L12 5.5v13l-4.5-4H4z' fill='white'/%3E%3Cpath d='M15.5 9a4.2 4.2 0 010 6M18 6.5a7.8 7.8 0 010 11'/%3E%3C/svg%3E")}
|
||||
.lko-snd.off::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9.5h3.5L12 5.5v13l-4.5-4H4z' fill='white'/%3E%3Cpath d='M16 9.5l5 5M21 9.5l-5 5'/%3E%3C/svg%3E")}
|
||||
.lko-fx i{position:absolute;width:9px;height:12px;border-radius:2px;animation:lkoBoom 1.3s cubic-bezier(.2,.7,.4,1) forwards}
|
||||
@keyframes lkoBoom{from{transform:translate(0,0) rotate(0) scale(1);opacity:1}to{transform:translate(var(--x),calc(var(--y) + 180px)) rotate(var(--r)) scale(.6);opacity:0}}
|
||||
@media (prefers-reduced-motion:reduce){.lko-dc span{animation:none}}
|
||||
@@ -837,11 +847,11 @@ 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=26110299"></script>
|
||||
<script src="data.js?v=26110299"></script>
|
||||
<script src="feed.js?v=26110299"></script>
|
||||
<script src="ceshi/meta.js?v=26110299"></script>
|
||||
<script src="../js/share-card.js?v=26110299"></script>
|
||||
<script src="topics.js?v=26110401"></script>
|
||||
<script src="data.js?v=26110401"></script>
|
||||
<script src="feed.js?v=26110401"></script>
|
||||
<script src="ceshi/meta.js?v=26110401"></script>
|
||||
<script src="../js/share-card.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -907,7 +917,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=26110299').then(function (r) { return r.json(); }).then(function (j) {
|
||||
fetch('cm.json?v=26110401').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) {
|
||||
@@ -1245,33 +1255,81 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
|
||||
}
|
||||
var csdBusy = false;
|
||||
/* 11-04 用户:「点摇一摇,整个页面上浮出一个动态效果,结束后再跳到那个测试」→ 全屏浮层:两颗大骰子翻滚 + 老虎机转测试名(越转越慢)→ 落定弹出那个测试的卡(分组配色 + 专属图标)+ 全屏撒彩纸 → 进入 */
|
||||
/* 11-04 用户:「摇一摇的动效要有音效」→ Web Audio 现合成(不加音频文件):开摇骰子哗啦声、转名字每格一下「嗒」、落定「叮咚」+ 彩纸「啵」;
|
||||
右上角喇叭可关,记在 mmbox.gc.snd。用户点按钮时才建 AudioContext(微信 / iOS 要求用户手势后才能出声)。 */
|
||||
var SND = { ctx: null, on: true };
|
||||
try { SND.on = localStorage.getItem('mmbox.gc.snd') !== '0'; } catch (e) {}
|
||||
function sndCtx() {
|
||||
if (!SND.on) return null;
|
||||
try { if (!SND.ctx) SND.ctx = new (window.AudioContext || window.webkitAudioContext)(); if (SND.ctx.state === 'suspended') SND.ctx.resume(); } catch (e) { return null; }
|
||||
return SND.ctx;
|
||||
}
|
||||
function tone(f, t0, d, type, vol, f2) {
|
||||
var c = sndCtx(); if (!c) return;
|
||||
var o = c.createOscillator(), g = c.createGain(), t = c.currentTime + (t0 || 0);
|
||||
o.type = type || 'sine'; o.frequency.setValueAtTime(f, t); if (f2) o.frequency.exponentialRampToValueAtTime(f2, t + d);
|
||||
g.gain.setValueAtTime(0, t); g.gain.linearRampToValueAtTime(vol || .2, t + .008); g.gain.exponentialRampToValueAtTime(.0008, t + d);
|
||||
o.connect(g); g.connect(c.destination); o.start(t); o.stop(t + d + .02);
|
||||
}
|
||||
function noise(t0, d, vol, hp) {
|
||||
var c = sndCtx(); if (!c) return;
|
||||
var n = Math.floor(c.sampleRate * d), buf = c.createBuffer(1, n, c.sampleRate), ch = buf.getChannelData(0);
|
||||
for (var i = 0; i < n; i++) ch[i] = (Math.random() * 2 - 1) * Math.pow(1 - i / n, 3);
|
||||
var s = c.createBufferSource(), f = c.createBiquadFilter(), g = c.createGain(), t = c.currentTime + (t0 || 0);
|
||||
s.buffer = buf; f.type = 'bandpass'; f.frequency.value = hp || 2400; f.Q.value = 1.2; g.gain.value = vol || .3;
|
||||
s.connect(f); f.connect(g); g.connect(c.destination); s.start(t);
|
||||
}
|
||||
var SFX = {
|
||||
rattle: function () { for (var i = 0; i < 9; i++) noise(i * .045 + Math.random() * .02, .05, .35, 1800 + Math.random() * 1600); }, /* 骰子在杯里哗啦 */
|
||||
tick: function (k) { tone(1250 + (k % 2) * 180, 0, .05, 'square', .05); noise(0, .025, .12, 3500); }, /* 转名字「嗒」 */
|
||||
land: function () { tone(784, 0, .5, 'triangle', .22); tone(1175, .1, .7, 'triangle', .2); tone(1568, .2, .9, 'sine', .12); noise(.02, .18, .25, 900); }, /* 叮咚 + 啵 */
|
||||
tap: function () { tone(660, 0, .08, 'sine', .12, 990); }
|
||||
};
|
||||
/* 11-04 用户:「摇出来以后两个选择:『就它了』或者重新摇」→ 落定后不再自动跳,给两个按钮;重新摇避开刚摇出的那个 */
|
||||
function csdRoll(btn) {
|
||||
if (csdBusy) return; csdBusy = true; haptic(); btn.classList.add('roll');
|
||||
var dn = csDone(), pool = TM.filter(function (x) { return !dn[x.id]; }); if (!pool.length) pool = TM;
|
||||
var pk = pool[Math.floor(Math.random() * pool.length)], i = 0, steps = 18;
|
||||
if (csdBusy) return; csdBusy = true; haptic(); if (btn) btn.classList.add('roll');
|
||||
var dn = csDone(), last = null, pk = null;
|
||||
var ov = document.createElement('div'); ov.className = 'lko';
|
||||
ov.innerHTML = '<div class="lko-bg"></div><div class="lko-in"><div class="lko-dc"><span class="a">' + diceSVG(6) + '</span><span class="b">' + diceSVG(3) + '</span></div>' +
|
||||
'<p class="lko-tip">手气摇号中…</p><div class="lko-reel"><span id="lkoR">?</span></div><div class="lko-card" id="lkoC"></div></div><div class="lko-fx" id="lkoFx"></div>';
|
||||
ov.innerHTML = '<div class="lko-bg"></div><button type="button" class="lko-x" aria-label="关闭">×</button><button type="button" class="lko-snd' + (SND.on ? '' : ' off') + '" aria-label="音效开关"></button>' +
|
||||
'<div class="lko-in"><div class="lko-dc"><span class="a">' + diceSVG(6) + '</span><span class="b">' + diceSVG(3) + '</span></div>' +
|
||||
'<p class="lko-tip">手气摇号中…</p><div class="lko-reel"><span id="lkoR">?</span></div><div class="lko-card" id="lkoC"></div>' +
|
||||
'<div class="lko-act"><button type="button" class="lko-go">就它了,去测 ›</button><button type="button" class="lko-re">' + diceSVG(5) + '重新摇</button></div></div><div class="lko-fx" id="lkoFx"></div>';
|
||||
document.body.appendChild(ov); void ov.offsetWidth; ov.classList.add('on');
|
||||
var R = ov.querySelector('#lkoR'), dcs = ov.querySelectorAll('.lko-dc span');
|
||||
setTimeout(function spin() {
|
||||
var last = i >= steps, t = last ? pk : TM[Math.floor(Math.random() * TM.length)];
|
||||
R.className = ''; void R.offsetWidth; R.className = last ? 'hit' : 'sp'; R.textContent = CS_SHORT[t.id] || t.title;
|
||||
[].forEach.call(dcs, function (d) { d.innerHTML = diceSVG(1 + Math.floor(Math.random() * 6)); });
|
||||
if (i % 3 === 0 && navigator.vibrate) try { navigator.vibrate(8); } catch (e) {}
|
||||
if (!last) { i++; setTimeout(spin, 45 + i * i * 1.15); return; }
|
||||
ov.classList.add('hit'); haptic();
|
||||
ov.querySelector('.lko-tip').textContent = '就它了!';
|
||||
ov.querySelector('#lkoC').innerHTML = '<div class="ck ' + CS_GPAL[pk.group] + '"><span class="cv">' + (CS_BLOBS[pk.group] || CS_BLOB) + '<i class="ck-wm">' + csTI(pk) + '</i><i class="lko-ic">' + csTI(pk) + '</i>' +
|
||||
'<b>' + esc(pk.title.replace(/^测一测|/, '')) + '</b><small>' + TG[pk.group] + ' · ' + pk.n + ' 题</small><em>马上开测</em></span></div>';
|
||||
var fx = ov.querySelector('#lkoFx'), cols = ['#FF8A65', '#9A7FE0', '#3FAE7A', '#4E8DE6', '#FFC94D', '#F0453A', '#FF8FB1'], h = '';
|
||||
for (var k = 0; k < 46; k++) {
|
||||
var ag = Math.random() * 6.283, r = 120 + Math.random() * 200;
|
||||
h += '<i style="--x:' + Math.round(Math.cos(ag) * r) + 'px;--y:' + Math.round(Math.sin(ag) * r - 60) + 'px;--r:' + Math.round(Math.random() * 720) + 'deg;background:' + cols[k % 7] + ';animation-delay:' + Math.round(Math.random() * 120) + 'ms;' + (k % 3 ? '' : 'border-radius:50%;') + '"></i>';
|
||||
}
|
||||
fx.innerHTML = h;
|
||||
setTimeout(function () { location.href = ceshiURL(pk.id, true); }, 1500);
|
||||
}, 260);
|
||||
function close() { ov.classList.remove('on'); setTimeout(function () { if (ov.parentNode) ov.parentNode.removeChild(ov); }, 260); csdBusy = false; if (btn) btn.classList.remove('roll', 'hit'); }
|
||||
function roll() {
|
||||
var pool = TM.filter(function (x) { return !dn[x.id] && x !== last; }); if (!pool.length) pool = TM.filter(function (x) { return x !== last; });
|
||||
pk = pool[Math.floor(Math.random() * pool.length)];
|
||||
var i = 0, steps = 18;
|
||||
ov.classList.remove('hit', 'done'); ov.querySelector('.lko-tip').textContent = '手气摇号中…'; ov.querySelector('#lkoC').innerHTML = ''; ov.querySelector('#lkoFx').innerHTML = '';
|
||||
SFX.rattle();
|
||||
setTimeout(function spin() {
|
||||
var end = i >= steps, t = end ? pk : TM[Math.floor(Math.random() * TM.length)];
|
||||
R.className = ''; void R.offsetWidth; R.className = end ? 'hit' : 'sp'; R.textContent = CS_SHORT[t.id] || t.title;
|
||||
[].forEach.call(dcs, function (d) { d.innerHTML = diceSVG(1 + Math.floor(Math.random() * 6)); });
|
||||
if (!end) { SFX.tick(i); if (i % 3 === 0 && navigator.vibrate) try { navigator.vibrate(8); } catch (e) {} i++; setTimeout(spin, 45 + i * i * 1.15); return; }
|
||||
ov.classList.add('hit'); haptic(); SFX.land();
|
||||
ov.querySelector('.lko-tip').textContent = '摇到了!';
|
||||
ov.querySelector('#lkoC').innerHTML = '<div class="ck ' + CS_GPAL[pk.group] + '"><span class="cv">' + (CS_BLOBS[pk.group] || CS_BLOB) + '<i class="ck-wm">' + csTI(pk) + '</i><i class="lko-ic">' + csTI(pk) + '</i>' +
|
||||
'<b>' + esc(pk.title.replace(/^测一测|/, '')) + '</b><small>' + TG[pk.group] + ' · ' + pk.n + ' 题</small></span></div>';
|
||||
var fx = ov.querySelector('#lkoFx'), cols = ['#FF8A65', '#9A7FE0', '#3FAE7A', '#4E8DE6', '#FFC94D', '#F0453A', '#FF8FB1'], h = '';
|
||||
for (var k = 0; k < 46; k++) {
|
||||
var ag = Math.random() * 6.283, r = 120 + Math.random() * 200;
|
||||
h += '<i style="--x:' + Math.round(Math.cos(ag) * r) + 'px;--y:' + Math.round(Math.sin(ag) * r - 60) + 'px;--r:' + Math.round(Math.random() * 720) + 'deg;background:' + cols[k % 7] + ';animation-delay:' + Math.round(Math.random() * 120) + 'ms;' + (k % 3 ? '' : 'border-radius:50%;') + '"></i>';
|
||||
}
|
||||
fx.innerHTML = h;
|
||||
setTimeout(function () { ov.classList.add('done'); }, 380); /* 卡片弹完再出按钮 */
|
||||
last = pk;
|
||||
}, 260);
|
||||
}
|
||||
ov.addEventListener('click', function (e) {
|
||||
if (e.target.closest('.lko-go')) { SFX.tap(); location.href = ceshiURL(pk.id, true); return; }
|
||||
if (e.target.closest('.lko-re')) { if (!ov.classList.contains('done')) return; haptic(); roll(); return; }
|
||||
if (e.target.closest('.lko-x')) { close(); return; }
|
||||
var sb = e.target.closest('.lko-snd');
|
||||
if (sb) { SND.on = !SND.on; sb.classList.toggle('off', !SND.on); try { localStorage.setItem('mmbox.gc.snd', SND.on ? '1' : '0'); } catch (x) {} if (SND.on) SFX.tap(); }
|
||||
});
|
||||
roll();
|
||||
}
|
||||
window.addEventListener('pageshow', function () { csdBusy = false; [].forEach.call(document.querySelectorAll('.lko'), function (o) { o.parentNode.removeChild(o); }); var b = document.getElementById('csvGo'); if (b) { b.classList.remove('roll', 'hit'); var bb = b.querySelector('.luck-b'); if (bb) bb.textContent = '摇一摇'; } });
|
||||
var csvT = 0, csvI = 0, csvRec = [], csvRecT = [];
|
||||
|
||||
@@ -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=26110299"></script>
|
||||
<script src="../topics.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
25
index.html
25
index.html
@@ -7,10 +7,10 @@
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>兜爸心选 · 孕育陪伴</title>
|
||||
<!-- V:26110299 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<!-- V:26110401 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<link rel="stylesheet" href="mama-box.css">
|
||||
<link rel="stylesheet" href="night.css">
|
||||
<link rel="stylesheet" href="js/hero-cd.css?v=26110299">
|
||||
<link rel="stylesheet" href="js/hero-cd.css?v=26110401">
|
||||
<!-- 夜晚模式:首屏绘制前就按上次的选择加 class,避免先白后黑闪一下(开关在首页右上角 #nightBtn,逻辑见 app.js) -->
|
||||
<script>try{if(localStorage.getItem('mmbox.night.v1')==='1'){document.documentElement.classList.add('night');document.querySelector('meta[name=theme-color]').content='#2A2340'}}catch(e){}</script>
|
||||
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
|
||||
@@ -1727,10 +1727,11 @@
|
||||
.qa-list .qa-q{gap:12px}
|
||||
.qa-list .qa-a,.qa-list .qa-it.t3 .qa-a{margin-left:72px}
|
||||
.qa-lc .qa-no{margin-top:2px}
|
||||
/* 11-04 用户:「图抢了视觉、字不明显,底色别偏暗」→ 图上盖一层白色半透明,字保留分类色 + 白色描边,图只当淡淡的底纹 */
|
||||
.qa-kw.ph{background-size:cover;background-position:center;box-shadow:0 3px 8px -4px rgba(120,80,60,.3),inset 0 0 0 1.5px rgba(255,255,255,.9)}
|
||||
.qa-kw.ph::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(160deg,rgba(255,255,255,.58),rgba(255,255,255,.72))}
|
||||
.qa-kw.ph span{position:relative;text-shadow:0 0 2px #fff,0 0 4px #fff,0 0 6px rgba(255,255,255,.9)}
|
||||
/* 11-04 用户:「核心词图标看不清、有点乱」→ 图和字分开:上面是干净的小图(不加蒙层),下面一条分类色实底白字,字永远清楚 */
|
||||
.qa-kw.ph{display:block;width:52px;height:56px;padding:0;border-radius:13px;overflow:hidden;background-size:cover;background-position:center 30%;box-shadow:0 3px 8px -4px rgba(120,80,60,.35),0 0 0 1px rgba(0,0,0,.04)}
|
||||
.qa-kw.ph span{position:absolute;left:0;right:0;bottom:0;height:20px;font-size:11.5px!important;font-weight:800;line-height:20px;letter-spacing:0!important;color:#fff;white-space:nowrap;text-align:center}
|
||||
.qa-kw.ph.c1 span{background:#E0507A}.qa-kw.ph.c2 span{background:#6E5BD6}.qa-kw.ph.c3 span{background:#2F86C9}
|
||||
.qa-kw.ph.c4 span{background:#D5871C}.qa-kw.ph.c5 span{background:#2E9C6A}.qa-kw.ph.c6 span{background:#E5683F}
|
||||
.qa-it.tc1{background:linear-gradient(110deg,#FFF0F4 0%,#FFFFFF 72%)}.qa-it.tc2{background:linear-gradient(110deg,#F3F0FF 0%,#FFFFFF 72%)}
|
||||
.qa-it.tc3{background:linear-gradient(110deg,#EAF5FF 0%,#FFFFFF 72%)}.qa-it.tc4{background:linear-gradient(110deg,#FFF5E3 0%,#FFFFFF 72%)}
|
||||
.qa-it.tc5{background:linear-gradient(110deg,#EAF8F1 0%,#FFFFFF 72%)}.qa-it.tc6{background:linear-gradient(110deg,#FFF1EA 0%,#FFFFFF 72%)}
|
||||
@@ -2590,17 +2591,17 @@
|
||||
<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=26110299"></script>
|
||||
<script src="guangchang/topics.js?v=26110401"></script>
|
||||
<script src="js/app.js"></script>
|
||||
<script src="js/hero-cd.js?v=26110299"></script>
|
||||
<script src="js/kit.js?v=26110299"></script>
|
||||
<script src="js/hero-cd.js?v=26110401"></script>
|
||||
<script src="js/kit.js?v=26110401"></script>
|
||||
<script>
|
||||
/* 11-02 首页「孕妈广场」效果稿:地址带 ?gcv=1~6 时,把 #gcHome 换成 demo/gch/vN.css + vN.js 的版式并滚到这一块。
|
||||
11-02 用户:「用第一版,放到预览页面上」;后改定彩色卡 → 不带参数也默认用 V6 合并版(广场卡堆 + 其他妈妈也在搜 + 测一测第 4 版彩色卡),不滚动、不显示效果稿角标 */
|
||||
(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=26110299';
|
||||
var n = m ? m[1] : '6', l = document.createElement('link'), s = document.createElement('script'), q = m ? Date.now() : 'v=26110401';
|
||||
var dir = n === '4' || n === '6' ? 'js/gch/' : 'demo/gch/'; /* 11-03 上正式:定稿 V6(含它套的 V4)并进 js/gch/,其余效果稿仍在 demo/ */
|
||||
l.rel = 'stylesheet'; l.href = dir + 'v' + n + '.css?' + q;
|
||||
s.src = dir + 'v' + n + '.js?' + q;
|
||||
@@ -2609,7 +2610,7 @@
|
||||
/* 11-02 品牌露出(用户定 4 处都要):默认加载,?brand=0 可关掉对比;11-03 已并进 js/gch/ */
|
||||
if (!/[?&]brand=0/.test(location.search)) {
|
||||
var bl = document.createElement('link'), bs = document.createElement('script');
|
||||
bl.rel = 'stylesheet'; bl.href = 'js/gch/brand.css?v=26110299'; bs.src = 'js/gch/brand.js?v=26110299';
|
||||
bl.rel = 'stylesheet'; bl.href = 'js/gch/brand.css?v=26110401'; bs.src = 'js/gch/brand.js?v=26110401';
|
||||
document.head.appendChild(bl); document.body.appendChild(bs);
|
||||
}
|
||||
})();
|
||||
@@ -2620,7 +2621,7 @@
|
||||
<script src="js/hero-fx.js"></script>
|
||||
<!-- 2026-10-05 首页头图:宝宝时不时动一动小手小脚(独立文件,删掉这一行即下线) -->
|
||||
<script src="js/baby-limbs.js?v=26101201"></script>
|
||||
<script src="js/coach.js?v=26110299"></script>
|
||||
<script src="js/coach.js?v=26110401"></script>
|
||||
<script src="js/birth-flow.js?v=26110201"></script>
|
||||
|
||||
<!-- 禁止下拉回弹(2026-10-11 统一规则,与孕期体重同一段):竖向拖动时从手指下往上找还能朝该方向滚的容器,找不到才拦;横滑、双指、可滚列表不受影响 -->
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||
var VER = '26110299';
|
||||
var VER = '26110401';
|
||||
const $ = (s, c) => (c || document).querySelector(s);
|
||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||
|
||||
@@ -5694,8 +5694,8 @@
|
||||
it.classList.add('kw');
|
||||
const kt = document.createElement('i');
|
||||
kt.className = 'qa-kw ' + (QA_TC[x.tag] || 'c5') + ' n' + kw.length;
|
||||
if (QA_KP[kw]) { kt.classList.add('ph'); kt.style.backgroundImage = 'url(assets/kw/' + QA_KP[kw] + ')'; }
|
||||
kt.innerHTML = '<span>' + (kw.length === 4 ? kw.slice(0, 2) + '<br>' + kw.slice(2) : kw) + '</span>';
|
||||
if (QA_KP[kw]) { kt.classList.add('ph'); kt.style.backgroundImage = 'url(assets/kw/' + QA_KP[kw] + ')'; kt.innerHTML = '<span>' + kw + '</span>'; } /* 带图的字放底条,一行不换行 */
|
||||
it._kw = kt; /* 序号照留(11-04 用户要求),关键词方块排在序号后面 */
|
||||
}
|
||||
const t = document.createElement('span'); t.className = 'qa-m';
|
||||
|
||||
@@ -231,5 +231,5 @@
|
||||
}
|
||||
/* feed.js 首页默认不加载(index.html 只引了 topics.js),这里按需拉一次 */
|
||||
if (window.GC_FEED) init();
|
||||
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110299'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
|
||||
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110401'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
|
||||
})();
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
(function () {
|
||||
var sec = document.getElementById('gcHome');
|
||||
if (!sec) return;
|
||||
var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = 'js/gch/v4.css?v=26110299';
|
||||
var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = 'js/gch/v4.css?v=26110401';
|
||||
document.head.appendChild(l);
|
||||
var s = document.createElement('script'); s.src = 'js/gch/v4.js?v=26110299';
|
||||
var s = document.createElement('script'); s.src = 'js/gch/v4.js?v=26110401';
|
||||
s.onload = function () { if (sec.querySelector('.g4-foot')) merge(); else sec.addEventListener('gc4-ready', merge, { once: true }); }; /* v4 要先拉 feed.js 才渲染 */
|
||||
document.body.appendChild(s);
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
if (/[?&]kit=0(?:&|$)/.test(location.search)) return;
|
||||
var box = document.getElementById('kit'), sec = document.getElementById('kitHome');
|
||||
if (!box || !sec) return;
|
||||
var V = '26110299';
|
||||
var V = '26110401';
|
||||
var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = 'js/kit.css?v=' + V; document.head.appendChild(l);
|
||||
document.documentElement.classList.add('has-kit');
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
postMessage 不是实时投递,微信在分享那一刻才派发,所以每次换内容都要再报一次;子页面没引 jweixin,这里按需加载。 */
|
||||
(function (g) {
|
||||
'use strict';
|
||||
var V = '26110299';
|
||||
var V = '26110401';
|
||||
var isWx = /MicroMessenger/i.test(navigator.userAgent || '');
|
||||
var waiting = [], loading = false;
|
||||
function ready(cb) {
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
'.tc-more{display:block;width:100%;margin-top:6px;height:40px;border:0;border-radius:99px;background:#F7F8FA;color:#4E5969;font-size:13px;font-weight:600}';
|
||||
var SLUG = (location.pathname.match(/\/topic\/([^\/]+)\//) || [])[1] || '';
|
||||
/* 11-04 微信转发图:每个专题一张 assets/share/t/<slug>.jpg(核心词大字 + logo),见 js/share-card.js */
|
||||
if (SLUG) (function () { var s = document.createElement('script'); s.src = '../../js/share-card.js?v=26110299'; s.onload = function () { window.mbShare('../../assets/share/t/' + SLUG + '.jpg'); }; document.head.appendChild(s); })();
|
||||
if (SLUG) (function () { var s = document.createElement('script'); s.src = '../../js/share-card.js?v=26110401'; s.onload = function () { window.mbShare('../../assets/share/t/' + SLUG + '.jpg'); }; document.head.appendChild(s); })();
|
||||
var SK = 'mmbox.tp.v1', UK = (function () { var m = ((location.hash || '') + '&' + (location.search || '')).match(/[#?&]openid=([^&]*)/); return m ? decodeURIComponent(m[1]) : '_guest'; })();
|
||||
function loadMe() { try { var a = JSON.parse(localStorage.getItem(SK) || '{}') || {}; var m = a[UK] || {}; m.cm = m.cm || {}; m.lk = m.lk || {}; return { a: a, m: m }; } catch (e) { return { a: {}, m: { cm: {}, lk: {} } }; } }
|
||||
function saveMe(st) { try { st.a[UK] = st.m; localStorage.setItem(SK, JSON.stringify(st.a)); } catch (e) {} }
|
||||
@@ -70,7 +70,7 @@
|
||||
function getJSON(u) { return fetch(u, { cache: 'no-cache' }).then(function (r) { if (!r.ok) throw r.status; return r.json(); }); }
|
||||
|
||||
function related(box) {
|
||||
getJSON('../_shared/idx.json?v=26110299').then(function (idx) {
|
||||
getJSON('../_shared/idx.json?v=26110401').then(function (idx) {
|
||||
var me = null; idx.forEach(function (x) { if (x[0] === SLUG) me = x; });
|
||||
var tag = me ? me[2] : '', h = 0; for (var i = 0; i < SLUG.length; i++) h = (h * 31 + SLUG.charCodeAt(i)) >>> 0;
|
||||
var rest = idx.filter(function (x) { return x[0] !== SLUG; });
|
||||
@@ -177,7 +177,7 @@
|
||||
}
|
||||
fetch(API + '/comments?kind=topic&target=' + encodeURIComponent(SLUG) + (OID ? '&openid=' + encodeURIComponent(OID) : ''))
|
||||
.then(function (r) { return r.json(); }).then(function (j) { if (j && j.code === 200) { RC = j.result; paint(); } }).catch(function () {});
|
||||
getJSON('../_shared/cm/' + SLUG + '.json?v=26110299').then(function (d) { L = d.c || []; paint(); }).catch(function () { paint(); });
|
||||
getJSON('../_shared/cm/' + SLUG + '.json?v=26110401').then(function (d) { L = d.c || []; paint(); }).catch(function () { paint(); });
|
||||
}
|
||||
|
||||
function extras(el) {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
月数按「自然月」数:从 max(出生月, 2025-01) 起,到满 3 周岁那个月之前为止(结果标「约」,以当地核定为准)。
|
||||
最多填 3 个孩子;还没出生的填预产期先算。地方另有加码的(如部分城市每孩另发)不在这里算。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#E25C5C;--c2:#FF9A8A;--cbg:#FFEFED}.kid{position:relative;margin-top:12px;padding:12px;border-radius:14px;background:#FAF7F8}.kid .lb{display:flex;justify-content:space-between}.kid .rm{font-size:12.5px;font-weight:700;color:var(--m)}.add{display:block;width:100%;height:42px;margin-top:12px;border-radius:12px;border:1.5px dashed var(--c);color:var(--c);font-size:14px;font-weight:800}.kid .seg{margin-top:8px}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -45,7 +45,7 @@
|
||||
<div class="tip"><b>地方可能另有补贴:</b>部分城市在国家 3600 元之外还另发生育补贴、育儿补贴,问一下当地卫健部门或看政务平台。</div>
|
||||
<p class="foot">依据《育儿补贴制度实施方案》(2025)估算,月数折算以当地核定为准。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -106,7 +106,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/butie-js.jpg', '育儿补贴:每孩每年 3600 元,你家能领多少'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
每次「查什么」只列常规项目,具体以产检医院安排为准。做完可以打勾(记在本机 mmbox.calc.chanjian)。
|
||||
预产期优先用预产期计算器填过的值。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#2F86C9;--c2:#6CB6F0;--cbg:#EAF5FF}.tl .ck{flex:none;align-self:flex-start;height:28px;padding:0 10px;margin-top:1px;border-radius:99px;background:#F4F6F8;color:var(--m);font-size:12px;font-weight:800}.tl li.ok .ck{background:var(--c);color:#fff}.tl li.ok .m{opacity:.55}.tl li.ok .d{border-color:var(--c);background:var(--c);box-shadow:none}.tl .m span.it{margin-top:3px;color:var(--t)}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -36,7 +36,7 @@
|
||||
<div class="tip"><b>要空腹的几次:</b>第一次建档抽血、糖耐(OGTT)一般要空腹,前一晚 10 点后别吃东西;具体看医院通知。<br><b>错过不能补的:</b>NT(11~13+6 周)、大排畸(20~24 周)、糖耐(24~28 周)都有时间窗口,提前预约。</div>
|
||||
<p class="foot">按《孕前和孕期保健指南(2018)》常规时间排,具体项目和时间以产检医院安排为准。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -93,7 +93,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/chanjian-js.jpg', '产检时间表:每次产检哪天去、查什么'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
计算:综合所得年度税表(3%~45%,年减除 6 万);应纳税所得 = 12 ×(月薪 − 个人五险一金 − 其他专项附加)− 60000,
|
||||
省的税 = 不扣宝宝那项的税 − 扣了之后的税。不含年终奖单独计税、劳务报酬等,结果为估算。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#6C5BD6;--c2:#A595F2;--cbg:#F1EEFF}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
<p class="foot">按现行个税政策估算,未含年终奖单独计税等情况,以个税 App 实际计算为准。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -81,7 +81,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/geshui-js.jpg', '个税省多少:有宝宝一年能少交多少税'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
本省延长的天数是否由生育保险基金支付各地不一样,结果同时给出「按国家 98 天起」和「按本省合计」两个数。
|
||||
津贴低于本人工资的,多数省份规定由单位补足差额 —— 填了本人月工资就算出差额。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#E0812A;--c2:#FFB067;--cbg:#FFF3E6}select.in{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#999 50%),linear-gradient(135deg,#999 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -46,7 +46,7 @@
|
||||
<div class="tip"><b>生育津贴 ≠ 生育医疗费:</b>产检、住院分娩的费用另外按生育保险报销,不在这个数里。</div>
|
||||
<p class="foot">按《社会保险法》《女职工劳动保护特别规定》常用算法估算,实际以当地医保部门核定为准。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -85,7 +85,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/jintie-js.jpg', '生育津贴计算器:产假期间能领多少钱'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -134,7 +134,7 @@ button{font:inherit;border:0;background:none;color:inherit;cursor:pointer}
|
||||
document.addEventListener('touchmove', function (e) { if (!sc.contains(e.target)) e.preventDefault(); }, { passive: false });
|
||||
})();
|
||||
</script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/jisuan.jpg', '孕期计算器:生娃花费、预产期、产假天数,一算就知道'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
对比用国家卫健委《中国居民营养与慢性病状况报告(2020 年)》18~44 岁平均身高:男 169.7 cm、女 158.0 cm。
|
||||
身高约 70% 看遗传,营养、睡眠、运动影响剩下的部分 —— 结果只是参考范围。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#1F9BA8;--c2:#5FCBD3;--cbg:#E6F7F8}.sx{display:flex;gap:10px;margin-top:12px}.sx div{flex:1;padding:10px;border-radius:12px;background:rgba(255,255,255,.18)}.sx b{display:block;font-size:22px;font-weight:900;line-height:1.3}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
<p class="foot">按遗传靶身高公式估算,实际身高受营养、睡眠、运动和疾病等影响,仅供参考。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -75,7 +75,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/shengao-js.jpg', '宝宝身高预测:长大后大概多高'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
各地规定不一,页面写「以当地为准」。很多地方已开通「新生儿出生一件事」联办(出生证 + 户口 + 医保 + 社保卡一次办)。
|
||||
做完可以打勾(记在本机 mmbox.calc.shouxu);还没生的按预产期先排。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#4E7FD8;--c2:#86AEF2;--cbg:#EDF3FF}.tl .ck{flex:none;align-self:flex-start;height:28px;padding:0 10px;margin-top:1px;border-radius:99px;background:#F4F6F8;color:var(--m);font-size:12px;font-weight:800}.tl li.ok .ck{background:var(--c);color:#fff}.tl li.ok .m{opacity:.55}.tl li.ok .d{border-color:var(--c);background:var(--c);box-shadow:none}.tl li.late .m b em{background:#FFE8E6;color:#E0453A}.tl .m span.w{color:var(--t)}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -36,7 +36,7 @@
|
||||
<div class="tip"><b>先查有没有「出生一件事」:</b>很多城市在支付宝、微信或当地政务 App 上能把出生医学证明、上户口、医保参保、社保卡一次办完,不用一趟趟跑。<br><b>要准备的:</b>爸妈身份证、户口本、结婚证、出生医学证明(宝宝名字定好再办)。</div>
|
||||
<p class="foot">各地规定和截止时间不完全一样,以当地公安、医保、卫健部门要求为准。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -87,7 +87,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/shouxu-js.jpg', '出生后手续时间线:每件事截止哪天'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
顺带提示两种溶血风险:妈妈 Rh 阴性 + 爸爸 Rh 阳性(Rh 溶血,要查抗 D 抗体);妈妈 O 型 + 爸爸非 O 型(ABO 溶血,多数轻)。
|
||||
顺式 AB(cis-AB)、孟买型等罕见情况不算,页面写明。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#D9475A;--c2:#FF8A96;--cbg:#FFEDEF}.bars{margin-top:12px}.bars div{display:flex;align-items:center;gap:8px;margin-top:6px}.bars b{flex:none;width:44px;font-size:16px}.bars i{flex:1;height:12px;border-radius:99px;background:rgba(255,255,255,.25);overflow:hidden}.bars i u{display:block;height:100%;border-radius:99px;background:#fff}.bars span{flex:none;width:52px;text-align:right;font-size:14px;font-weight:800}.bars .no{opacity:.45}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
<p class="foot">按常规遗传规律估算,不能用来做亲子鉴定;顺式 AB、孟买型等罕见血型不在计算范围。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -97,7 +97,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/xuexing-js.jpg', '宝宝血型推算:爸妈血型配宝宝会是什么型'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -187,7 +187,7 @@ button{cursor:pointer}
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/yuchanqi-js.jpg', '预产期计算器:宝宝哪天到?还有几天见面'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
价格是 2026 年市场行情的估算区间(月子中心 28 天套餐、金牌 / 普通月嫂 26 天、在家坐月子的食材营养 + 用品),按城市 × 档次取值,按天数折算;
|
||||
不是报价,只帮用户比较三种方式的量级。改价格只改下面 P 表。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#C9658F;--c2:#F0A0C0;--cbg:#FCEEF4}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -36,7 +36,7 @@
|
||||
<div class="tip"><b>看月子中心记得问清:</b>价格含不含宝宝护理、产后修复、家属餐和陪护床;护士是否 24 小时、一对几;有没有医护资质和儿科医生定期巡房。<br><b>请月嫂:</b>看健康证、育婴师证,最好先面试、试工,合同写清休息和换人规则。</div>
|
||||
<p class="foot">价格为 2026 年市场行情估算,各地差别很大,以实际报价为准。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -70,7 +70,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/yuezi-js.jpg', '月子花费:月子中心、月嫂、在家坐各花多少'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
孕月按 4 周一个月(孕 1~10 月);孕早期 < 14 周、孕中期 14~27+6 周、孕晚期 ≥ 28 周;37 周足月、42 周过期。
|
||||
宝宝像什么用全生态统一表 /common/baby-size.js(别自己维护)。预产期计算器填过的值直接拿来用。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#E2668E;--c2:#FF9DB8;--cbg:#FFEEF3}.bs{display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.18)}.bs i{font-style:normal;font-size:30px;line-height:1}.bs b{display:block;font-size:15px}.chk{display:flex;align-items:center;gap:10px;margin-top:10px}.chk .in{flex:1;margin:0}.chk b{flex:none;min-width:120px;text-align:right;font-size:15px;color:var(--c)}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -48,7 +48,7 @@
|
||||
<div class="tip"><b>孕周以早孕 B 超为准:</b>月经不规律或记不清末次月经时,医生会按孕早期 B 超(头臀长)定孕周。这里算的是常规算法,仅供参考。</div>
|
||||
<p class="foot">计算结果仅供参考,不能代替医生诊断。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script src="/common/baby-size.js?v=26101001"></script>
|
||||
<script>
|
||||
(function () {
|
||||
@@ -108,7 +108,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/yunzhou-js.jpg', '孕周计算器:今天孕几周几天,宝宝像什么'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
某一孕周的推荐范围 = 孕早期 0~2 kg + (孕周 − 13) × 每周范围,封顶到总范围。双胎按 IOM 2009(标准没覆盖双胎)。
|
||||
只算范围不做记录(11-04 用户:记体重是另一个记录工具)。
|
||||
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110299">
|
||||
<link rel="stylesheet" href="../_shared/calc.css?v=26110401">
|
||||
<style>:root{--c:#2E9C6A;--c2:#6CCB9A;--cbg:#E8F7EF}.gauge{position:relative;height:10px;margin-top:14px;border-radius:99px;background:rgba(255,255,255,.28)}.gauge .ok{position:absolute;top:0;bottom:0;border-radius:99px;background:rgba(255,255,255,.65)}.gauge .me{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(0,0,0,.15)}.glab{display:flex;justify-content:space-between;margin-top:4px;font-size:11.5px;opacity:.85}</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -45,7 +45,7 @@
|
||||
<div class="tip"><b>胖得太快或太慢都要留意:</b>增重过多容易妊娠糖尿病、巨大儿,过少可能影响宝宝发育。一周涨超过 1 公斤,或者突然腿脚、脸都肿,要尽快告诉医生。</div>
|
||||
<p class="foot">依据 WS/T 801—2022《妊娠期妇女体重增长推荐值标准》;双胎参考美国医学研究所 IOM 2009。仅供参考。</p>
|
||||
</div>
|
||||
<script src="../_shared/calc.js?v=26110299"></script>
|
||||
<script src="../_shared/calc.js?v=26110401"></script>
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
@@ -94,7 +94,7 @@
|
||||
})();
|
||||
</script>
|
||||
<script src="../_shared/brand.js?v=26110203"></script>
|
||||
<script src="../../js/share-card.js?v=26110299"></script>
|
||||
<script src="../../js/share-card.js?v=26110401"></script>
|
||||
<script>window.mbShare('../../assets/share/t/zengzhong-js.jpg', '孕期增重范围:孕期胖多少才合适'); /* 11-04 微信转发图 */</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user