SAY.Li
  • One

    2026-10-05

    修复

    • 登录/注册弹窗点击遮罩不再关闭:document 级点击委托里「e.target === authBox(点到弹窗外暗色遮罩本身)即 authClose()」的分支移除——填表中途鼠标稍偏出面板点到暗区,整窗立即消失、已填内容全部丢失,是「输入一半容易消失」的直接原因。关闭入口收敛为右上 × 按钮与 Escape 键
    主楼
    00
    0
  • One

    2026-10-11

    修复

    • 反引号成对输入触发范围过宽、打断正常输入:敲反引号在任意位置都会自动成对,句中想输入字面反引号时被硬塞一对、还得手动删。现收敛为:仅在行首(光标前本行只有空白)才成对、光标落在中间;行内已有文字时不再接管,走浏览器原生单反引号。「连敲三下 ` ` ` 得到围栏开头」的路径不受影响(第一下成对、第二下跳过闭引号、第三下按行内规则原生补一个);选中文字时用反引号包裹选中内容、光标后已是反引号跳过、代码围栏内部保持原生输入——三条规则不变。
    • 正文超限提示静默失效:超限拦截里的 window.showToast(...) 恒为 undefined——核心 showToast 是顶层 const(全局词法绑定、未挂 window,规范亦明确禁止经 window 引用/探测);改为 typeof showToast === 'function' 后按名直调。
    • 游客态收藏(五角星)被染成强调色:收藏入口在游客下是 <a>,命中核心 .post-content a { color: var(--brand-hover) }(0-1-1 压过插件 .post-vote-btn 的 0-1-0),PC / 手机端都显示品牌色、与顶/踩的弱色基线不一致。
    • 游客点顶/踩改为弹窗登录(对齐收藏入口):此前游客态是直提按钮,点击提交走服务端 need_speak() 整页跳登录页;现改为与收藏同口径的登录链接(route_url('login'))。服务端投票路由的 need_speak() 作为直投兜底保留。
    • 首页悬停气泡偶发不消失:列表页等处的自绘气泡在鼠标移开后偶发保持显示。根因:mouseout 的 event.target 是离开链路上最深的元素——从链接内的图标(svg)或文字上移出时 target 不一定是锚点自身,而离开判定用的是 event.target !== anchor 严格相等,这类离开整条被漏掉,气泡要等滚动/resize 或碰上下一个气泡才被清掉。现改为「离开路径包含锚点」判定(anchor.contains(event.target) / contains(relatedTarget)),锚点内移动照旧保持不动;suppressed(滚动隐藏后的抑制标记)的清除同样兼容子元素离开路径。
    • 用户卡片手机端弹层定位由「视口居中」改为「贴该帖头像展开」:以触发元素所在帖子行的头像为纵向参照——头像在上半屏时贴头像下缘向下展开,下半屏时贴上缘向上展开(判据为头像上/下两侧可用空间比较);首选方向放不下整张卡片而另一侧放得下时自动翻面,两侧都放不下则留在空间更大的一侧;两端统一夹取视口(12px 边距)保证完整可见,水平保持居中。点作者名与点头像均按该楼头像定位;不在帖子行内(侧栏用户卡头像等)或行内无头像链接(作者已注销等)时回退为被点击元素。桌面端定位不变(贴被点击元素右侧)。
    #1
    00

发表回复

登录后回复