fix: bottom bar no touch seek; lyrics seek on Android; smoother NP animation

- initProgressScrub: pass noTouch=true for the bottom mini-bar so touch
  events are never registered on it; only mouse events remain (desktop-only).
  The now-playing scrubber is unchanged and keeps full touch support.
- Export seekToMs(ms) from player.js; use it in the lyrics click handler
  instead of S.audio.currentTime which has no effect when HAS_BRIDGE
  (native ExoPlayer handles playback, not the HTML audio element).
- styles.css: add will-change:transform to .player and .np-overlay to keep
  them on GPU compositor layers during the swipe gesture; tweak NP open
  transition to cubic-bezier(.4,0,.2,1) for a snappier feel.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Sonnet 4.6 committed 2026-05-18 22:42:58 +02:00
1 parent 9d8a5a22bb
commit 4856f0ca57
3 files changed
+40 -25

No files matched your search

+3 -2
View File
@@ -223,7 +223,7 @@ button:focus{outline:none}
.btn-outline.blue:hover{background:var(--blue-dim)}
/* ── PLAYER ── */
.player{position:fixed;bottom:0;left:0;right:0;height:var(--player-h);background:rgba(8,8,20,.93);backdrop-filter:blur(28px);border-top:1px solid var(--border2);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:0;padding:0 20px;z-index:100}
.player{position:fixed;bottom:0;left:0;right:0;height:var(--player-h);background:rgba(8,8,20,.93);backdrop-filter:blur(28px);border-top:1px solid var(--border2);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:0;padding:0 20px;z-index:100;will-change:transform}
.player-drag-handle{position:absolute;top:5px;left:50%;transform:translateX(-50%);width:32px;height:3px;border-radius:2px;background:rgba(255,255,255,.18);transition:background .2s,width .2s;pointer-events:none}
.player.dragging .player-drag-handle{background:rgba(255,255,255,.45);width:44px}
.player-track{min-width:0;display:flex;align-items:center;gap:10px;overflow:visible}
@@ -521,8 +521,9 @@ button:focus{outline:none}
display:flex;flex-direction:column;
background:var(--bg);
transform:translateY(100%);
transition:transform .4s cubic-bezier(.32,.72,0,1);
transition:transform .35s cubic-bezier(.4,0,.2,1);
overflow:hidden;
will-change:transform;
}
.np-overlay.open{transform:translateY(0)}