101 lines
8.0 KiB
HTML
101 lines
8.0 KiB
HTML
<!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=26110413">
|
||
<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=26110413"></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=26110413"></script>
|
||
<script>window.mbShare('../../assets/share/t/zengzhong-js.jpg', '孕期增重范围:孕期胖多少才合适'); /* 11-04 微信转发图 */</script>
|
||
</body>
|
||
</html>
|