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:
1 parent
9d8a5a22bb
commit
4856f0ca57
3 files changed
+40
-25
No files matched your search
+2
-2
@@ -2,7 +2,7 @@ import { S } from './state.js';
|
||||
import { esc } from './utils.js';
|
||||
import { coverUrl } from './api.js';
|
||||
// Circular imports — safe (only used inside function bodies)
|
||||
import { playCurrent, _syncNpDirect, dlSongLocal, npToggleStar, _syncOverlayState, isPlaying } from './player.js';
|
||||
import { playCurrent, _syncNpDirect, dlSongLocal, npToggleStar, _syncOverlayState, isPlaying, seekToMs } from './player.js';
|
||||
import { navigate } from './views.js';
|
||||
import { openPlModal, showSongInfo } from './ui.js';
|
||||
|
||||
@@ -116,7 +116,7 @@ function _renderSyncedLines(content, lines) {
|
||||
const el = document.createElement('div');
|
||||
el.className = 'lyrics-line';
|
||||
el.textContent = line.value;
|
||||
el.onclick = () => { S.audio.currentTime = line.start / 1000; };
|
||||
el.onclick = () => { seekToMs(line.start); };
|
||||
content.appendChild(el);
|
||||
return { start: line.start, el };
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user