首页宝宝手脚微动改为孕 20 周起才动,幅度略加、间隔放宽 v26101201
Co-Authored-By: AI 助手
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>兜爸心选 · 孕育陪伴</title>
|
||||
<!-- V:26101032 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<!-- V:26101201 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<link rel="stylesheet" href="mama-box.css">
|
||||
<link rel="stylesheet" href="night.css">
|
||||
<!-- 夜晚模式:首屏绘制前就按上次的选择加 class,避免先白后黑闪一下(开关在首页右上角 #nightBtn,逻辑见 app.js) -->
|
||||
@@ -2047,7 +2047,7 @@
|
||||
<!-- 2026-10-04 首页头图:按孕周换宝宝 + 阳光水波(独立文件) -->
|
||||
<script src="js/hero-fx.js"></script>
|
||||
<!-- 2026-10-05 首页头图:宝宝时不时动一动小手小脚(独立文件,删掉这一行即下线) -->
|
||||
<script src="js/baby-limbs.js"></script>
|
||||
<script src="js/baby-limbs.js?v=26101201"></script>
|
||||
|
||||
<!-- 禁止下拉回弹(2026-10-11 统一规则,与孕期体重同一段):竖向拖动时从手指下往上找还能朝该方向滚的容器,找不到才拦;横滑、双指、可滚列表不受影响 -->
|
||||
<script>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||
var VER = '26101032';
|
||||
var VER = '26101201';
|
||||
const $ = (s, c) => (c || document).querySelector(s);
|
||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
在静图上盖一张 WebGL 画布,同一张 PNG 原样画上去,只在「关节 → 手脚末端」这一小段做小角度旋转扭动,
|
||||
脸周围是保护圈(权重强制为 0),头和身子一像素都不动。
|
||||
· 每个阶段的关节位置手工标在 LIMBS 里(坐标 = 480×480 原图像素)。1、2 阶段是胚芽,没有手脚,不动。
|
||||
· 节奏:每隔 2.5~6 秒随机挑一处(小腿 / 小脚 / 小胳膊),用 1.8~2.8 秒缓缓抬起再放回;
|
||||
· 节奏(10-12 起只在孕 20 周起):每隔 4~9 秒随机挑一处(小腿 / 小脚 / 小胳膊),用 1.8~2.8 秒缓缓抬起再放回;
|
||||
偶尔小腿和小脚一起「蹬」一下。角度只有 3~9 度。不动的时候不重画(不占电)。
|
||||
· 跟 hero-fx.js 解耦:不改它,只盯 #heroStill 的 src / class —— 换阶段、淡入淡出都自动跟上。
|
||||
· 没 WebGL / 系统「减少动态效果」→ 什么都不做,静图照常。
|
||||
@@ -22,11 +22,11 @@
|
||||
const LIMBS = {
|
||||
'450581c2f05f': { face: [228, 222, 24], l: [[268, 272, 300, 286, 14, 6, 'leg'], [242, 258, 266, 240, 9, 5, 'arm']] },
|
||||
'dc4c7eea1c50': { face: [240, 207, 30], l: [[288, 272, 322, 320, 18, 5, 'leg'], [306, 318, 326, 310, 10, 9, 'foot'], [228, 272, 256, 236, 10, 3, 'arm']] },
|
||||
'7bf792b04123': { face: [217, 205, 32], l: [[252, 262, 292, 302, 15, 5, 'leg'], [278, 305, 296, 298, 10, 9, 'foot'], [197, 283, 236, 244, 12, 3, 'arm']] },
|
||||
'f140f4367b48': { face: [220, 208, 33], l: [[262, 262, 306, 303, 15, 5, 'leg'], [288, 305, 308, 300, 10, 9, 'foot'], [200, 282, 236, 244, 12, 3, 'arm']] },
|
||||
'51e99b3060e2': { face: [222, 205, 34], l: [[276, 266, 335, 310, 17, 5, 'leg'], [322, 313, 338, 305, 11, 9, 'foot'], [232, 268, 278, 240, 12, 4, 'arm']] },
|
||||
'a5dbb24c1ef2': { face: [225, 215, 40], l: [[276, 252, 322, 296, 16, 4, 'leg'], [310, 305, 326, 293, 11, 9, 'foot']] },
|
||||
'610c4d92c16d': { face: [250, 205, 42], l: [[292, 272, 335, 305, 16, 3, 'leg'], [325, 312, 338, 300, 12, 8, 'foot']] }
|
||||
'7bf792b04123': { face: [217, 205, 32], l: [[252, 262, 292, 302, 15, 6, 'leg'], [278, 305, 296, 298, 10, 10, 'foot'], [197, 283, 236, 244, 12, 5, 'arm']] },
|
||||
'f140f4367b48': { face: [220, 208, 33], l: [[262, 262, 306, 303, 15, 6, 'leg'], [288, 305, 308, 300, 10, 10, 'foot'], [200, 282, 236, 244, 12, 5, 'arm']] },
|
||||
'51e99b3060e2': { face: [222, 205, 34], l: [[276, 266, 335, 310, 17, 6, 'leg'], [322, 313, 338, 305, 11, 10, 'foot'], [232, 268, 278, 240, 12, 5, 'arm']] },
|
||||
'a5dbb24c1ef2': { face: [225, 215, 40], l: [[276, 252, 322, 296, 16, 5, 'leg'], [310, 305, 326, 293, 11, 10, 'foot']] },
|
||||
'610c4d92c16d': { face: [250, 205, 42], l: [[292, 272, 335, 305, 16, 4, 'leg'], [325, 312, 338, 300, 12, 9, 'foot']] }
|
||||
};
|
||||
const N = 4; // shader 里最多 4 处
|
||||
|
||||
@@ -78,6 +78,14 @@
|
||||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
||||
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
||||
|
||||
/* 2026-10-12 用户:「20 周以后的宝宝,偶尔让他稍微动一动,微微动一动脚和手,幅度不要太大」。
|
||||
原来 11 周起都动、角度 3~9°,实测 10 秒里只有两三百个像素在变,基本看不出来。
|
||||
改成:只有孕 20 周起才动;手 3°→5°、小腿 5°→6°、小脚 9°→10°(仍是「微微」),间隔放宽到 4~9 秒(「偶尔」)。
|
||||
孕周来自 hero-fx.js 同一个 mb-preg 事件(没建档 / 产后不动);kidweek=NN 调试参数照样认。 */
|
||||
const FORCE = (location.search.match(/[?&]kidweek=(\d+)/) || [])[1];
|
||||
let week = FORCE != null ? +FORCE : (window.__mbPreg && !window.__mbPreg.postpartum ? window.__mbPreg.week : null);
|
||||
addEventListener('mb-preg', e => { if (FORCE == null) { const d = e.detail || {}; week = d.postpartum ? null : d.week; } });
|
||||
const old = () => week >= 20;
|
||||
let cfg = null, ready = false, raf = 0, timer = 0, seen = true, lastPick = -1;
|
||||
const moves = []; // 正在进行的动作:{ i, t0, dur, amp }
|
||||
const home = document.getElementById('screen-home');
|
||||
@@ -115,7 +123,7 @@
|
||||
function plan() {
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(() => {
|
||||
if (ready && active() && cfg.l.length) {
|
||||
if (ready && active() && cfg.l.length && (old() || DEBUG)) {
|
||||
let i = Math.floor(Math.random() * cfg.l.length);
|
||||
if (i === lastPick && cfg.l.length > 1) i = (i + 1) % cfg.l.length;
|
||||
lastPick = i;
|
||||
@@ -129,7 +137,7 @@
|
||||
kick();
|
||||
}
|
||||
plan();
|
||||
}, DEBUG ? 900 + Math.random() * 600 : 2500 + Math.random() * 3500);
|
||||
}, DEBUG ? 900 + Math.random() * 600 : 4000 + Math.random() * 5000);
|
||||
}
|
||||
|
||||
// 跟着 #heroStill:换图时重新载贴图,静图淡出时画布一起淡出
|
||||
|
||||
Reference in New Issue
Block a user