feat(首页彩蛋): 宝宝在肚皮底下动——整页随机顶出小帐篷,摁中有震动/声音/压扁滑走/回弹余波反馈 (v26100301)
- 新增 js/bump.js(独立文件,删 index.html 里一行即下线) - 第一下摁鼓包不触发卡片跳转;宝宝冒头<0.3s内点击照常跳转;不顶小按钮 - 「隐私权限」新增开关「宝宝在肚皮下动」(localStorage mb_bump) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
13
js/app.js
13
js/app.js
@@ -3,7 +3,7 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||
var VER = '26100233';
|
||||
var VER = '26100301';
|
||||
const $ = (s, c) => (c || document).querySelector(s);
|
||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||
|
||||
@@ -1569,6 +1569,10 @@
|
||||
['sw', '档案仅自己可见', '关掉后可生成分享链接', 1],
|
||||
['sw', '允许家人查看', '爸爸可看孕周与产检日程', 1]
|
||||
] },
|
||||
/* 2026-10-03 首页彩蛋开关(js/bump.js):第 5 项是 localStorage 键,开关状态真的存下来,不是摆设 */
|
||||
{ t: '首页小彩蛋', rows: [
|
||||
['sw', '宝宝在肚皮下动', '首页偶尔被宝宝顶起来,摁一下会躲开', 1, 'mb_bump']
|
||||
] },
|
||||
{ t: '', rows: [
|
||||
['txt', '我们不会把你的孕期数据用于广告投放,也不会卖给第三方。数据加密存储,你可以随时导出或删除。']
|
||||
] }
|
||||
@@ -1634,9 +1638,11 @@
|
||||
'<span class="st-rt">' + r[1] + '</span>' +
|
||||
(r[2] ? '<span class="st-rv">' + r[2] + '</span>' : '') +
|
||||
'<i class="chev">›</i></button>';
|
||||
/* 开关行:aria-checked 让读屏也能拿到状态,样式只认 .on */
|
||||
/* 开关行:aria-checked 让读屏也能拿到状态,样式只认 .on。
|
||||
带第 5 项(localStorage 键)的是真开关:状态从本地读,'0' = 关 */
|
||||
if (r[4]) r = [r[0], r[1], r[2], localStorage.getItem(r[4]) === '0' ? 0 : 1, r[4]];
|
||||
return '<button class="st-row sw' + (r[3] ? ' on' : '') + ' ripple" role="switch" ' +
|
||||
'aria-checked="' + (r[3] ? 'true' : 'false') + '" data-sw="' + r[1] + '">' +
|
||||
'aria-checked="' + (r[3] ? 'true' : 'false') + '" data-sw="' + r[1] + '"' + (r[4] ? ' data-key="' + r[4] + '"' : '') + '>' +
|
||||
'<span class="st-rt">' + r[1] + '<em>' + r[2] + '</em></span>' +
|
||||
'<i class="sw-track"><b></b></i></button>';
|
||||
}).join('');
|
||||
@@ -1660,6 +1666,7 @@
|
||||
const on = !b.classList.contains('on');
|
||||
b.classList.toggle('on', on);
|
||||
b.setAttribute('aria-checked', on ? 'true' : 'false');
|
||||
if (b.dataset.key) { localStorage.setItem(b.dataset.key, on ? '1' : '0'); window.dispatchEvent(new Event('mb-bump')); }
|
||||
haptic();
|
||||
toast(b.dataset.sw + (on ? ' 已开启' : ' 已关闭'));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user