From 8aa073b9768c57ba6efd9030808e6607261d6cd2 Mon Sep 17 00:00:00 2001 From: wvffle Date: Mon, 25 Jul 2022 02:05:33 +0000 Subject: [PATCH] Add player seek progress bar --- front/src/components/audio/Player.vue | 10 +++++++++- front/src/components/vui/list/VirtualItem.vue | 18 ------------------ front/src/components/vui/list/VirtualList.vue | 10 +++++++++- front/src/style/components/_player.scss | 15 +++++++++++---- front/src/style/components/_queue.scss | 2 +- 5 files changed, 30 insertions(+), 25 deletions(-) delete mode 100644 front/src/components/vui/list/VirtualItem.vue diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue index 6e2eee2e7..cdda270b6 100644 --- a/front/src/components/audio/Player.vue +++ b/front/src/components/audio/Player.vue @@ -7,6 +7,7 @@ import TrackPlaylistIcon from '~/components/playlists/TrackPlaylistIcon.vue' import onKeyboardShortcut from '~/composables/onKeyboardShortcut' import { computed, ref } from 'vue' import { useGettext } from 'vue3-gettext' +import { useMouse, useWindowSize } from '@vueuse/core' import useQueue from '~/composables/audio/useQueue' import usePlayer from '~/composables/audio/usePlayer' @@ -95,9 +96,12 @@ const switchTab = () => { const progressBar = ref() const touchProgress = (event: MouseEvent) => { - const time = ((event.clientX - (event.target as Element).getBoundingClientRect().left) / progressBar.value.offsetWidth) * duration.value + const time = ((event.clientX - ((event.target as Element).closest('.progress')?.getBoundingClientRect().left ?? 0)) / progressBar.value.offsetWidth) * duration.value currentTime.value = time } + +const { x } = useMouse() +const { width: screenWidth } = useWindowSize() -