From dbae4219735723a97c644d767f5bf94b2160af6f Mon Sep 17 00:00:00 2001 From: shinya Date: Sun, 22 Jun 2025 23:02:55 +0800 Subject: [PATCH] feat: adjust 3x hint style --- src/app/play/page.tsx | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/app/play/page.tsx b/src/app/play/page.tsx index 0fbc760..30627a4 100644 --- a/src/app/play/page.tsx +++ b/src/app/play/page.tsx @@ -315,6 +315,12 @@ function PlayPageClient() { saveCurrentPlayProgress(); }; + // 阻止移动端长按弹出系统菜单 + const contextMenuHandler = (e: Event) => { + e.preventDefault(); + e.stopPropagation(); + }; + // timeupdate 节流(5 秒)保存 let lastSave = 0; const timeUpdateHandler = () => { @@ -327,12 +333,14 @@ function PlayPageClient() { video.addEventListener('pause', pauseHandler); video.addEventListener('timeupdate', timeUpdateHandler); + video.addEventListener('contextmenu', contextMenuHandler); videoEventListenersRef.current = { video, listeners: [ { event: 'pause', handler: pauseHandler }, { event: 'timeupdate', handler: timeUpdateHandler }, + { event: 'contextmenu', handler: contextMenuHandler }, ], }; }; @@ -415,10 +423,10 @@ function PlayPageClient() { autoSize: false, autoMini: false, screenshot: false, - setting: true, + setting: false, loop: false, flip: false, - playbackRate: true, + playbackRate: false, aspectRatio: false, fullscreen: true, fullscreenWeb: false, @@ -1204,15 +1212,21 @@ function PlayPageClient() { if (!artRef.current) return; const element = artRef.current; + const disableContextMenu = (e: Event) => { + e.preventDefault(); + e.stopPropagation(); + }; element.addEventListener('touchstart', handleTouchStart, { passive: true }); element.addEventListener('touchend', handleTouchEnd, { passive: true }); element.addEventListener('touchcancel', handleTouchEnd, { passive: true }); + element.addEventListener('contextmenu', disableContextMenu); return () => { element.removeEventListener('touchstart', handleTouchStart); element.removeEventListener('touchend', handleTouchEnd); element.removeEventListener('touchcancel', handleTouchEnd); + element.removeEventListener('contextmenu', disableContextMenu); }; }, [artRef.current, isLongPressing]); @@ -1425,7 +1439,7 @@ function PlayPageClient() { showSpeedTip ? 'opacity-100' : 'opacity-0 pointer-events-none' }`} > -
+