/* 首页「孕妈广场」效果稿 V5 · 今日一问 + 话题横滑(只在 ?gcv=5 时加载;不改仓库其他文件) */ (function () { var sec = document.getElementById('gcHome'), T = window.GC_TOPICS; if (!sec || !Array.isArray(T) || !T.length) return; var esc = function (s) { return String(s == null ? '' : s).replace(/[&<>"]/g, function (c) { return { '&': '&', '<': '<', '>': '>', '"': '"' }[c]; }); }; var num = function (n) { return String(n).replace(/\B(?=(\d{3})+(?!\d))/g, ','); }; var kfmt = function (n) { return n >= 10000 ? (n / 10000).toFixed(1).replace(/\.0$/, '') + '万' : n >= 1000 ? (n / 1000).toFixed(1).replace(/\.0$/, '') + 'k' : String(n); }; var hash = function (s) { var x = 7; for (var i = 0; i < s.length; i++) x = (x * 31 + s.charCodeAt(i)) | 0; return Math.abs(x); }; var ava = function (n) { return 'assets/img/mom/' + n + '.jpg'; }; var MOMS = []; for (var i = 1; i <= 22; i++) MOMS.push('m' + (i < 10 ? '0' : '') + i); for (i = 1; i <= 14; i++) MOMS.push('p' + (i < 10 ? '0' : '') + i); var go = function (id) { location.href = 'guangchang/' + (id ? '?t=' + encodeURIComponent(id) : '') + location.hash; }; var CAT_CN = { family: '家庭婚姻', work: '职场', baby: '经验' }, CATS = ['family', 'work', 'baby']; /* 今日一问:按北京日期在热门话题里轮换;问法 + 两个立场是效果稿占位文案 */ var Q = { f01: ['怀孕之后,家里的唠叨变多了吗?', '真的变多了', '还好,能接受'], f02: ['长辈按老经验养胎,你会怎么回?', '笑笑不接话', '直接讲清楚'], f05: ['被“关心”到喘不过气,你会说出来吗?', '会委婉说', '忍一忍算了'], m01: ['怀孕后,家里的分工变了吗?', '他做得更多了', '基本没变'], m06: ['孕期更想要礼物,还是被看见?', '被看见更重要', '礼物也要有'], m10: ['他懂你养胎其实很累吗?', '他挺懂的', '还差得远'], w01: ['孕期上班,不舒服你会直接说吗?', '会直接说', '能忍就忍'], w02: ['产检请假,你会提前心里预演吗?', '每次都预演', '直接请就好'], w10: ['上班孕妈的累,同事看得见吗?', '大多看得见', '基本看不见'], b01: ['孕期的难受,你会跟别人讲吗?', '会讲出来', '自己消化'], b03: ['育儿内容,越看越心慌吗?', '是的,少看了', '看了更安心'], b08: ['偶尔害怕生孩子,你也有过吗?', '我也有过', '还好不怕'] }; var DAY = Math.floor((Date.now() + 8 * 3600e3) / 864e5); var DATE = new Date(DAY * 864e5).toISOString().slice(0, 10); var hot = T.filter(function (t) { return t.hot && Q[t.id]; }); var qt = hot[DAY % hot.length], q = Q[qt.id]; var seed = hash(qt.id + DATE), pctA = 38 + seed % 27; // 占位比例 38%~64% var voters = 1200 + seed % 900; // 占位表态人数 var KEY = 'gcv5_vote'; var vote = null; try { var sv = JSON.parse(localStorage.getItem(KEY) || 'null'); if (sv && sv.d === DATE && sv.t === qt.id) vote = sv.v; } catch (e) {} var avs = [0, 1, 2, 3].map(function (k) { return MOMS[(seed + k * 7) % MOMS.length]; }); function pick(cat) { if (cat) { var l = T.filter(function (t) { return t.cat === cat && t.ph; }); return l.filter(function (t) { return t.hot; }).concat(l.filter(function (t) { return !t.hot; })); } var by = CATS.map(function (c) { return T.filter(function (t) { return t.cat === c && t.hot && t.ph; }); }), out = []; for (var r = 0; r < 10; r++) by.forEach(function (l) { if (l[r]) out.push(l[r]); }); return out; } function resultHTML() { var a = pctA + (vote === 0 ? 1 : 0), b = 100 - a; return '
' + '
' + (vote === 0 ? '✓' : '') + esc(q[1]) + ' ' + a + '%' + '' + b + '% ' + esc(q[2]) + (vote === 1 ? '✓' : '') + '
' + '
' + '
'; } function actHTML() { if (vote != null) return resultHTML(); return '
' + '
'; } var mo = new Date(DAY * 864e5), dlab = (mo.getUTCMonth() + 1) + '月' + mo.getUTCDate() + '日'; sec.innerHTML = '

孕妈广场

效果稿 V5' + '
' + '
' + '
今日广场一问' + dlab + ' · ' + CAT_CN[qt.cat] + '
' + '

' + esc(q[0]) + '

' + '
' + actHTML() + '
' + '
' + avs.map(function (n) { return ''; }).join('') + '' + '' + num(voters + (vote != null ? 1 : 0)) + ' 位妈妈已表态
' + '
' + '
' + '
'; sec.classList.add('gv5'); sec.classList.remove('hide'); var row = document.getElementById('g5Row'); function paint(cat) { row.innerHTML = pick(cat).map(function (t) { return ''; }).join('') + ''; row.scrollLeft = 0; } paint(''); sec.addEventListener('click', function (e) { var c = e.target.closest('[data-cat]'); if (c && sec.contains(c)) { [].forEach.call(sec.querySelectorAll('.g5-cat button'), function (b) { b.classList.toggle('on', b === c); }); paint(c.getAttribute('data-cat')); return; } var v = e.target.closest('.q5-v'); if (v) { vote = +v.getAttribute('data-v'); try { localStorage.setItem(KEY, JSON.stringify({ d: DATE, t: qt.id, v: vote })); } catch (er) {} var act = document.getElementById('q5Act'); act.innerHTML = resultHTML(); act.firstElementChild.classList.add('in'); requestAnimationFrame(function () { requestAnimationFrame(function () { act.firstElementChild.classList.remove('in'); }); }); document.getElementById('q5Cnt').innerHTML = '' + num(voters + 1) + ' 位妈妈已表态'; return; } var t = e.target.closest('[data-t]'); if (t && sec.contains(t)) go(t.getAttribute('data-t')); }); })();