summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2025-05-23 11:55:48 +0900
committerGitHub <noreply@github.com>2025-05-23 11:55:48 +0900
commitb6ade8315ad6de0234d90d09e250f10f59a85ac0 (patch)
treeecbbbff213c9238ba0b82b2ad689f8ed20221a22 /packages/frontend/src/components
parentMkTooltipが画面左端を突き抜けないようにする (#15890) (diff)
downloadmisskey-b6ade8315ad6de0234d90d09e250f10f59a85ac0.tar.gz
misskey-b6ade8315ad6de0234d90d09e250f10f59a85ac0.tar.bz2
misskey-b6ade8315ad6de0234d90d09e250f10f59a85ac0.zip
fix(frontend): 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように (#16073)
* fix(frontend): 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように * Update Changelog
Diffstat (limited to 'packages/frontend/src/components')
-rw-r--r--packages/frontend/src/components/MkMediaVideo.vue28
1 files changed, 25 insertions, 3 deletions
diff --git a/packages/frontend/src/components/MkMediaVideo.vue b/packages/frontend/src/components/MkMediaVideo.vue
index 0e5f1e28b9..81a5ab27c7 100644
--- a/packages/frontend/src/components/MkMediaVideo.vue
+++ b/packages/frontend/src/components/MkMediaVideo.vue
@@ -13,8 +13,9 @@ SPDX-License-Identifier: AGPL-3.0-only
controlsShowing && $style.active,
(video.isSensitive && prefer.s.highlightSensitiveMedia) && $style.sensitive,
]"
- @mouseover="onMouseOver"
- @mouseleave="onMouseLeave"
+ @mouseover.passive="onMouseOver"
+ @mousemove.passive="onMouseMove"
+ @mouseleave.passive="onMouseLeave"
@contextmenu.stop
@keydown.stop
>
@@ -309,7 +310,7 @@ const controlsShowing = computed(() => {
return false;
});
const isFullscreen = ref(false);
-let controlStateTimer: string | number;
+let controlStateTimer: number | null = null;
// MediaControl: Common State
const oncePlayed = ref(false);
@@ -342,9 +343,26 @@ function onMouseOver() {
window.clearTimeout(controlStateTimer);
}
isHoverring.value = true;
+
+ controlStateTimer = window.setTimeout(() => {
+ isHoverring.value = false;
+ }, 3000);
+}
+
+function onMouseMove() {
+ if (controlStateTimer) {
+ window.clearTimeout(controlStateTimer);
+ }
+ isHoverring.value = true;
+ controlStateTimer = window.setTimeout(() => {
+ isHoverring.value = false;
+ }, 3000);
}
function onMouseLeave() {
+ if (controlStateTimer) {
+ window.clearTimeout(controlStateTimer);
+ }
controlStateTimer = window.setTimeout(() => {
isHoverring.value = false;
}, 100);
@@ -509,6 +527,10 @@ onDeactivated(() => {
window.cancelAnimationFrame(mediaTickFrameId);
mediaTickFrameId = null;
}
+ if (controlStateTimer) {
+ window.clearTimeout(controlStateTimer);
+ controlStateTimer = null;
+ }
});
</script>