计算器改分步模式(wizard.js,12 个含产假计算器模式)、测试卡图文分开、百宝箱火苗去圈、关注前3条头像各自2~6秒换(v26110419)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
deploy
2026-11-04 08:44:16 +00:00
parent e57bc9f4a5
commit a6e4a73d21
28 changed files with 342 additions and 90 deletions

View File

@@ -3,7 +3,7 @@
(function () {
'use strict';
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
var VER = '26110418';
var VER = '26110419';
const $ = (s, c) => (c || document).querySelector(s);
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));

View File

@@ -244,5 +244,5 @@
}
/* feed.js 首页默认不加载(index.html 只引了 topics.js),这里按需拉一次 */
if (window.GC_FEED) init();
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110418'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
else { var fs = document.createElement('script'); fs.src = 'guangchang/feed.js?v=26110419'; fs.onload = fs.onerror = init; document.body.appendChild(fs); }
})();

View File

@@ -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=26110418';
var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = 'js/gch/v4.css?v=26110419';
document.head.appendChild(l);
var s = document.createElement('script'); s.src = 'js/gch/v4.js?v=26110418';
var s = document.createElement('script'); s.src = 'js/gch/v4.js?v=26110419';
s.onload = function () { if (sec.querySelector('.g4-foot')) merge(); else sec.addEventListener('gc4-ready', merge, { once: true }); }; /* v4 要先拉 feed.js 才渲染 */
document.body.appendChild(s);
@@ -121,24 +121,28 @@
for (var k = 0; k < c; k++) h += avaEl(LIKE_AVA[avaAt++ % LIKE_AVA.length]);
return '<span class="g6-avs" aria-hidden="true">' + h + '</span>';
}
var likeT = 0;
/* 11-04 用户:前 3 条的小头像各自 2~6 秒随机换一个(每条独立计时);原地换(缩小→换图→弹回),个数、点赞数都不动 */
var likeT = [];
function swapOne(r) {
var ims = r.querySelectorAll('.g6-avs img');
if (!ims.length) return;
var im = ims[Math.floor(Math.random() * ims.length)], on = {}, nx, t = 0;
list.querySelectorAll('.g6-avs img').forEach(function (m) { on[m.getAttribute('src')] = 1; });
do { nx = LIKE_AVA[avaAt++ % LIKE_AVA.length]; } while (on['assets/img/mom/' + nx + '.jpg'] && ++t < LIKE_AVA.length);
im.className = 'sw-o';
setTimeout(function () { im.src = 'assets/img/mom/' + nx + '.jpg'; im.className = 'sw-i'; }, 220);
}
function likeTick() {
clearTimeout(likeT);
likeT = setTimeout(function () {
var rows = list.querySelectorAll('.g6-nt');
if (!document.hidden && rows.length && list.offsetParent) {
/* 11-03 用户:「头像在变,比如 3 个里突然有一个变了;后面点赞数不变」→ 原地换掉其中一个(缩小→换图→弹回),个数、点赞数都不动 */
var r = rows[Math.floor(Math.random() * rows.length)], ims = r.querySelectorAll('.g6-avs img');
if (ims.length) {
var im = ims[Math.floor(Math.random() * ims.length)], on = {}, nx, t = 0;
list.querySelectorAll('.g6-avs img').forEach(function (m) { on[m.getAttribute('src')] = 1; });
do { nx = LIKE_AVA[avaAt++ % LIKE_AVA.length]; } while (on['assets/img/mom/' + nx + '.jpg'] && ++t < LIKE_AVA.length);
im.className = 'sw-o';
setTimeout(function () { im.src = 'assets/img/mom/' + nx + '.jpg'; im.className = 'sw-i'; }, 220);
}
}
likeTick();
}, 4000 + Math.random() * 3000);
likeT.forEach(clearTimeout); likeT = [];
[0, 1, 2].forEach(function (i) {
(function loop() {
likeT[i] = setTimeout(function () {
var r = list.querySelectorAll('.g6-nt')[i];
if (r && !document.hidden && list.offsetParent) swapOne(r);
loop();
}, 2000 + Math.random() * 4000);
})();
});
}
all.addEventListener('click', function () { location.href = 'guangchang/' + location.search + location.hash; });
paintList();

View File

@@ -102,8 +102,9 @@ html.night .lv-i em{color:#F1E6EE}
.kr.t-qa .lv-i{color:#2E9B78}
/* 生娃计算器固定第一条,图标块左上角小火苗 */
.kr-ic{position:relative}
.kr-hot{position:absolute;right:-6px;top:-6px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:linear-gradient(135deg,#F0453A,#FF8A3D);border:1.5px solid #fff;box-sizing:content-box}
.kr-hot svg{width:11px;height:11px;color:#fff}
/* 11-04 用户:不要外面的圈,直接一个红色火苗 */
.kr-hot{position:absolute;right:-7px;top:-9px;display:block;width:16px;height:16px;line-height:0;filter:drop-shadow(0 0 1.5px #fff) drop-shadow(0 0 1px #fff)}
.kr-hot svg{width:16px;height:16px;color:#F0352A}
/* 11-04 用户:「我的孕期工具」标题和下面「孕期百宝箱」一样大、字下半截一样垫一条小色块(写在这里而不是 mama-box.css:本文件在首页一定加载,且晚于 mama-box.css) */
.dock-head .dock-title{flex:none;padding:0 3px;font-size:21px;font-weight:900;letter-spacing:.5px;color:#2A1E1E;background:linear-gradient(transparent 58%,#FFD6A0 58%,#FFD6A0 92%,transparent 92%)}
html.night .dock-head .dock-title{color:#F1E6EE}

View File

@@ -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 = '26110418';
var V = '26110419';
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');

View File

@@ -8,7 +8,7 @@
postMessage 不是实时投递,微信在分享那一刻才派发,所以每次换内容都要再报一次;子页面没引 jweixin,这里按需加载。 */
(function (g) {
'use strict';
var V = '26110418';
var V = '26110419';
var isWx = /MicroMessenger/i.test(navigator.userAgent || '');
var waiting = [], loading = false;
function ready(cb) {