Files
mama-box/topic/zengzhong-js/index.html

105 lines
8.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<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>
<!-- 孕期计算器 · 孕期增重范围(2026-11-04 用户从 20 个备选里选了带星的 10 个,本页是其中之一)。
依据:国家卫健委行业标准 WS/T 801—2022《妊娠期妇女体重增长推荐值标准》(单胎)。
孕前 BMI < 18.5:总增重 11~16 kg,孕中晚期每周 0.46(0.37~0.56)kg;18.5~23.9:8~14 kg,0.37(0.26~0.48);
24~27.9:7~11 kg,0.30(0.22~0.37);≥ 28:5~9 kg,0.22(0.15~0.30);孕早期(< 14 周)共增 0~2 kg。
某一孕周的推荐范围 = 孕早期 0~2 kg + (孕周 − 13) × 每周范围,封顶到总范围。双胎按 IOM 2009(标准没覆盖双胎)。
只算范围不做记录(11-04 用户:记体重是另一个记录工具)。
共用 ../_shared/calc.css + calc.js(返回 / 禁回弹 / 日期按北京时间 / 记住上次填的值);自成一页,不引 app.js。 -->
<link rel="stylesheet" href="../_shared/calc.css?v=26110455">
<link rel="stylesheet" href="../_shared/wizard.css?v=26110455">
<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>
<div id="scroll">
<header class="bar" id="bar">
<button class="back" id="back" aria-label="返回"><svg viewBox="0 0 24 24"><path d="M15 5l-7 7 7 7"/></svg></button>
<span class="t">孕期计算器</span>
</header>
<section class="hd"><p>孕期计算器</p><h1>孕期增重范围</h1><span>按孕前身高体重,算整个孕期胖多少合适、现在该胖多少</span></section>
<section class="calc">
<div class="res" id="res"><div class="empty">填好身高和孕前体重,马上出结果</div></div>
<div class="fld two">
<div><label class="lb" for="cH">身高</label><div class="inw"><input class="in num" type="number" inputmode="decimal" id="cH" placeholder="160"><em>厘米</em></div></div>
<div><label class="lb" for="cW0">孕前体重</label><div class="inw"><input class="in num" type="number" inputmode="decimal" id="cW0" placeholder="52"><em>公斤</em></div></div>
</div>
<div class="fld"><span class="lb">怀了几个</span><div class="seg s2" id="cN"><button type="button" data-v="1">一个宝宝</button><button type="button" data-v="2">双胞胎</button></div></div>
<div class="fld two">
<div><label class="lb" for="cWk">现在孕周<small>选填</small></label><div class="inw"><input class="in num" type="number" inputmode="numeric" id="cWk" placeholder="20"><em>周</em></div></div>
<div><label class="lb" for="cW1">现在体重<small>选填</small></label><div class="inw"><input class="in num" type="number" inputmode="decimal" id="cW1" placeholder="58"><em>公斤</em></div></div>
</div>
<span class="hint">填了现在的孕周和体重,会告诉你现在胖得合不合适</span>
</section>
<section class="sec">
<h2>不同体型该胖多少</h2>
<p class="lead">孕前 BMI = 体重(kg) ÷ 身高(m)²,单胎</p>
<table class="tbl" id="tbl"><thead><tr><th>孕前体型</th><th>BMI</th><th>整个孕期</th><th>孕中晚期每周</th></tr></thead><tbody></tbody></table>
</section>
<div class="tip"><b>胖得太快或太慢都要留意:</b>增重过多容易妊娠糖尿病、巨大儿,过少可能影响宝宝发育。一周涨超过 1 公斤,或者突然腿脚、脸都肿,要尽快告诉医生。</div>
<p class="foot">依据 WS/T 801—2022《妊娠期妇女体重增长推荐值标准》;双胎参考美国医学研究所 IOM 2009。仅供参考。</p>
</div>
<script src="../_shared/calc.js?v=26110455"></script>
<script>
(function () {
'use strict';
var C = window.CK, $ = C.$;
C.shell();
var st = C.store('mmbox.calc.zengzhong', { h: '', w0: '', n: 1, wk: '', w1: '' });
var p = C.preg(); if (!st.wk && p && !p.pp && p.w) st.wk = p.w;
/* [名称, BMI 下限, 上限, 总增重低, 高, 每周中值, 每周低, 每周高, 双胎低, 双胎高] */
var K = [['偏瘦', 0, 18.5, 11, 16, .46, .37, .56, null, null], ['正常', 18.5, 24, 8, 14, .37, .26, .48, 16.8, 24.5],
['超重', 24, 28, 7, 11, .30, .22, .37, 14.1, 22.7], ['肥胖', 28, 99, 5, 9, .22, .15, .30, 11.3, 19.1]];
function f1(n) { return (Math.round(n * 10) / 10).toString(); }
var IN = { h: '#cH', w0: '#cW0', wk: '#cWk', w1: '#cW1' };
Object.keys(IN).forEach(function (k) { var el = $(IN[k]); el.value = st[k]; el.addEventListener('input', function () { st[k] = el.value; paint(); }); });
C.seg($('#cN'), st, 'n', paint);
function paint() {
st.save();
var h = +st.h / 100, w0 = +st.w0, R = $('#res'), ki = -1;
if (h >= 1.3 && h <= 2.1 && w0 >= 30 && w0 <= 200) {
var bmi = w0 / h / h; K.forEach(function (k, i) { if (bmi >= k[1] && bmi < k[2]) ki = i; });
}
$('#tbl tbody').innerHTML = K.map(function (k, i) {
return '<tr' + (i === ki ? ' class="on"' : '') + '><td><b>' + k[0] + '</b></td><td class="num">' + (i === 0 ? '< 18.5' : i === 3 ? '≥ 28' : k[1] + '~' + (k[2] - .1)) + '</td><td class="num">' + k[3] + '~' + k[4] + ' kg</td><td class="num">' + k[5] + ' kg</td></tr>';
}).join('');
if (ki < 0) { R.innerHTML = '<div class="empty">' + (st.h || st.w0 ? '身高填厘米、体重填公斤,再核对一下' : '填好身高和孕前体重,马上出结果') + '</div>'; return; }
var k = K[ki], tw = +st.n === 2, lo = tw ? k[8] : k[3], hi = tw ? k[9] : k[4];
var html = '<small>孕前 BMI ' + f1(bmi) + ' · ' + k[0] + (tw ? ' · 双胞胎' : '') + ',整个孕期建议胖</small>';
if (tw && lo == null) { R.innerHTML = html + '<b class="big">请问医生</b><span class="note">孕前偏瘦又是双胞胎,没有统一推荐值,增重目标请产检医生单独定。</span>'; return; }
html += '<b class="big num">' + lo + ' ~ ' + hi + '<u>公斤</u></b><span class="note">也就是 ' + Math.round(lo * 2) + '~' + Math.round(hi * 2) + ' 斤' + (tw ? '' : ';孕早期共 0~2 公斤,孕中晚期每周约 ' + k[5] + ' 公斤(' + k[6] + '~' + k[7] + ')') + '</span>';
var wk = +st.wk;
if (wk >= 1 && wk <= 42) {
var rl, rh;
if (tw) { rl = lo * Math.min(1, wk / 40); rh = hi * Math.min(1, wk / 40); } /* 双胎没有分周推荐,按比例摊 */
else if (wk <= 13) { rl = 0; rh = 2 * wk / 13; }
else { rl = Math.min(lo, (wk - 13) * k[6]); rh = Math.min(hi, 2 + (wk - 13) * k[7]); }
var w1 = +st.w1, g = w1 > 30 ? w1 - w0 : null;
html += '<div class="row"><div><small>孕 ' + wk + ' 周建议已胖</small><b class="num">' + f1(rl) + '~' + f1(rh) + ' kg</b></div>' +
(g != null ? '<div><small>你已经胖了</small><b class="num">' + f1(g) + ' kg · ' + (g < rl - .05 ? '偏少' : g > rh + .05 ? '偏多' : '刚好') + '</b></div>' : '') + '</div>';
if (g != null) {
var mx = Math.max(rh * 1.6, g + 1, 2), mn = Math.min(0, g - 1), sc = function (v) { return ((v - mn) / (mx - mn) * 100).toFixed(1) + '%'; };
html += '<div class="gauge"><i class="ok" style="left:' + sc(rl) + ';width:calc(' + sc(rh) + ' - ' + sc(rl) + ')"></i><i class="me" style="left:' + sc(g) + '"></i></div><div class="glab"><span>偏少</span><span>合适范围</span><span>偏多</span></div>';
}
}
R.innerHTML = html;
}
paint();
})();
</script>
<script src="../_shared/brand.js?v=26110203"></script>
<script src="../../js/share-card.js?v=26110455"></script>
<script>window.mbShare('../../assets/share/t/zengzhong-js.jpg', '孕期增重范围:孕期胖多少才合适'); /* 11-04 微信转发图 */</script>
<!-- 11-04 分步模式:一步一题、最后出结果(同生娃计算器),见 ../_shared/wizard.js -->
<script src="../_shared/wizard.js?v=26110455"></script>
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
</body>
</html>