悄悄话留言改半屏面板(最高 2/3,留出星空)+ 说一句下面加入口、「全部」也开面板;留言可回复;星星划走后再冒出来;100 条留言重写成大白话 (v26110618)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
29
js/app.js
29
js/app.js
@@ -3,7 +3,7 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
/* 页面版本号(YYMMDD+序号):显示在「关于兜爸心选」页底部;bump 时同步 head 注释与 ?v= */
|
||||
var VER = '26110616';
|
||||
var VER = '26110618';
|
||||
const $ = (s, c) => (c || document).querySelector(s);
|
||||
const $$ = (s, c) => Array.from((c || document).querySelectorAll(s));
|
||||
|
||||
@@ -4565,6 +4565,7 @@
|
||||
m.el.remove();
|
||||
m.btn.classList.remove('flare', 'gone');
|
||||
m.btn.classList.add('used');
|
||||
reborn(m.btn);
|
||||
mts.delete(m.i);
|
||||
if (done) paintCard(m.it, m.i);
|
||||
checkDone();
|
||||
@@ -4575,8 +4576,20 @@
|
||||
· 声音用 WebAudio 现合成,不加载音频文件:点星 = 一声随机五声音阶的「叮」(连点几颗像在弹琴),
|
||||
唰出去 = 一道由低到高的风声;右上角喇叭可关,记在本地。 */
|
||||
function checkDone() {
|
||||
const all = $$('.wsk-st', page);
|
||||
$('#wskDone').classList.toggle('show', all.length > 0 && all.every(b => b.classList.contains('used')) && !mts.size);
|
||||
/* 11-07 用户:点完不要整片星空都空掉 —— 星星会再冒出来(reborn),「星星都落下来啦」不再出现 */
|
||||
$('#wskDone').classList.remove('show');
|
||||
}
|
||||
/* 11-07 用户:「星星跑掉了,过一会儿还有其他星星出来,相当于其他妈妈说的话能出来,而不是都点完之后整个星空就不能点了」
|
||||
划走的星 8~16 秒后换个位置重新亮起来(同一句话;整片夜空一直有星可点) */
|
||||
function reborn(btn) {
|
||||
setTimeout(() => {
|
||||
if (!btn.isConnected || !btn.classList.contains('used')) return;
|
||||
btn.style.left = (36 + Math.random() * 58).toFixed(1) + '%';
|
||||
btn.style.top = (21 + Math.random() * 38).toFixed(1) + '%';
|
||||
btn.classList.remove('used', 'cur', 'flare', 'gone');
|
||||
btn.classList.add('born');
|
||||
setTimeout(() => btn.classList.remove('born'), 1500);
|
||||
}, 8000 + Math.random() * 8000);
|
||||
}
|
||||
const SND = 'mmbox.whsnd.v1';
|
||||
let actx = null, sndOn = true;
|
||||
@@ -4686,7 +4699,7 @@
|
||||
const btn = $('.wsk-st[data-go="' + i + '"]', page);
|
||||
if (!btn) { paintCard(it, i); return; }
|
||||
btn.classList.add('cur');
|
||||
if (RM) { btn.classList.add('used'); paintCard(it, i); checkDone(); return; }
|
||||
if (RM) { btn.classList.add('used'); reborn(btn); paintCard(it, i); checkDone(); return; }
|
||||
const pr = page.getBoundingClientRect(), br = btn.getBoundingClientRect();
|
||||
const x0 = br.left + br.width / 2 - pr.left, y0 = br.top + br.height / 2 - pr.top;
|
||||
/* 瞄准左下(屏幕左边外、六成高处):越靠左起步角度越陡,保证在屏幕里拖得够长 */
|
||||
@@ -4768,7 +4781,7 @@
|
||||
/* 2026-10-02 用户:「每个星星都是孕妈的一句话,类似这个感觉,替换掉今晚多少句悄悄话」→ 标题不再报条数 */
|
||||
/* 2026-10-02 用户:上半部分文字太占地方、挡住星星 → 标题收成一行,话题做成一行小胶囊;副标题去掉,话题说明挪进写悄悄话弹窗 */
|
||||
const th = theme();
|
||||
$('#wskTitle').innerHTML = '<div class="wsk-t">每一颗星星,都是<b>一位孕妈</b>的一句话</div>' +
|
||||
$('#wskTitle').innerHTML = '<div class="wsk-t">每颗星星,都是<b>一个妈妈</b>说的话</div>' +
|
||||
(th ? '<div class="wsk-topic"><em>本周话题</em><b>' + esc(th.name) + '</b></div>' : '<p>' + (night ? '今晚' : '今天') + ',她们和你一样在等宝宝来</p>');
|
||||
$('#whSay').firstElementChild.textContent = th && th.say ? th.say : '说一句悄悄话';
|
||||
paintDeco();
|
||||
@@ -4776,7 +4789,7 @@
|
||||
paintList(l);
|
||||
if (cur && list()[cur - 1]) $$('.wsk-st[data-go="' + cur + '"]', page).forEach(x => x.classList.add('cur'));
|
||||
$('#whpLeft').textContent = !data ? '' : !oid() || !data.canPost ? '填好预产期,就能说一句' :
|
||||
window.MBWhCm ? '说的话先审核再公开,攒够 ' + MBWhCm.starLikes() + ' 个赞就挂上星星' : /* 11-07 悄悄话第 2 步:说一句 = 发进下面的留言区 */
|
||||
window.MBWhCm ? '先审核再公开,被赞 ' + MBWhCm.starLikes() + ' 次就变成星星' : /* 11-07 悄悄话第 2 步:说一句 = 发进下面的留言区 */
|
||||
data.left ? '今天还能说 ' + data.left + ' 句' : '今天的 3 句说完啦,明天再来';
|
||||
}
|
||||
function drawer(on) {
|
||||
@@ -4928,7 +4941,7 @@
|
||||
ta.placeholder = th && th.ph ? th.ph : '今天想对谁说点什么?';
|
||||
$('#whPresets').innerHTML = ((th && th.presets && th.presets.length) ? th.presets : (data.presets || [])).map(t => '<button class="wh-pre" type="button">' + esc(t) + '</button>').join('');
|
||||
$('#whLeft').textContent = window.MBWhCm ? '' : '今天还能说 ' + data.left + ' 句';
|
||||
if (window.MBWhCm) { $('#whMLead').textContent = '发出后先审核,通过了会出现在星空下面的留言区;攒够 ' + MBWhCm.starLikes() + ' 个赞,就会挂到星空上,同孕期的妈妈都能点到。'; }
|
||||
if (window.MBWhCm) { $('#whMLead').textContent = '发出去先审核,通过了大家就能在留言里看到。被赞够 ' + MBWhCm.starLikes() + ' 次,它会变成天上的一颗星星,同孕周的妈妈都点得到。'; }
|
||||
openModal('modalWhisper');
|
||||
});
|
||||
$('#whPresets').addEventListener('click', e => {
|
||||
@@ -4949,7 +4962,7 @@
|
||||
/* 11-07 悄悄话第 2 步(用户定):星空页「说一句」并入留言区 —— 发成置顶笔记下的留言(先审后发),赞够门槛自动挂星 */
|
||||
if (window.MBWhCm) {
|
||||
MBWhCm.post(t, data.week)
|
||||
.then(m => { if (m) { toast(m); return; } closeModal(); toast('发出去啦,审核通过后会出现在留言区'); })
|
||||
.then(m => { if (m) { toast(m); return; } closeModal(); toast('发出去了,审核通过后大家就能看到'); })
|
||||
.then(() => { busy = false; btn.disabled = false; btn.textContent = '悄悄发出'; });
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user