player controls position improvements

This commit is contained in:
Nikita Krupin 2022-06-07 14:29:57 -04:00
parent 6d4fde2dcc
commit bee1f45701
3 changed files with 117 additions and 12 deletions

View File

@ -4,10 +4,13 @@
text text
small small
color="white" color="white"
style="position: absolute; bottom: 0.25rem; right: 0.25rem" style="position: absolute; right: 0.25rem"
:style="fullscreen ? 'bottom: 3.5rem' : 'bottom: 0.25rem'"
@click.stop="$emit('fullscreen')" @click.stop="$emit('fullscreen')"
> >
<v-icon>{{ fullscreen ? "mdi-fullscreen-exit" : "mdi-fullscreen" }}</v-icon> <v-icon size="1.25rem">{{
fullscreen ? "mdi-fullscreen-exit" : "mdi-fullscreen"
}}</v-icon>
</v-btn> </v-btn>
</template> </template>

View File

@ -74,7 +74,11 @@
<div <div
style="transition: opacity 0.15s ease-in-out" style="transition: opacity 0.15s ease-in-out"
:style="controls ? 'opacity: 1;' : 'opacity: 0; pointer-events: none'" :style="
controls && !seeking
? 'opacity: 1;'
: 'opacity: 0; pointer-events: none'
"
> >
<minimize /> <minimize />
<loop /> <loop />
@ -143,7 +147,89 @@
<v-icon size="1rem">mdi-fast-forward-5</v-icon> <v-icon size="1rem">mdi-fast-forward-5</v-icon>
</v-btn> </v-btn>
<watchtime v-if="$refs.player" :video="$refs.player" /> <watchtime
v-if="$refs.player"
:video="$refs.player"
:fullscreen="isFullscreen"
/>
<v-btn
v-if="isFullscreen"
fab
text
small
outlined
style="position: absolute; bottom: 0.25rem; left: 1rem"
color="white"
disabled
@click.stop=""
>
<v-icon>mdi-thumb-up-outline</v-icon>
</v-btn>
<v-btn
v-if="isFullscreen"
fab
text
small
outlined
style="position: absolute; bottom: 0.25rem; left: 4rem"
color="white"
disabled
@click.stop=""
>
<v-icon>mdi-thumb-down-outline</v-icon>
</v-btn>
<v-btn
v-if="isFullscreen"
fab
text
small
outlined
style="position: absolute; bottom: 0.25rem; left: 7rem"
color="white"
disabled
@click.stop=""
>
<v-icon>mdi-share-outline</v-icon>
</v-btn>
<v-btn
v-if="isFullscreen"
fab
text
small
outlined
style="position: absolute; bottom: 0.25rem; left: 10rem"
color="white"
disabled
@click.stop=""
>
<v-icon>mdi-plus-box-multiple-outline</v-icon>
</v-btn>
<v-btn
v-if="isFullscreen"
fab
text
small
outlined
style="position: absolute; bottom: 0.25rem; left: 13rem"
color="white"
disabled
@click.stop=""
>
<v-icon>mdi-comment-text-outline</v-icon>
</v-btn>
<v-btn
v-if="isFullscreen"
fab
text
small
style="position: absolute; bottom: 0.25rem; right: 0.25rem"
color="white"
disabled
@click.stop=""
>
<v-icon>mdi-cards-outline</v-icon>
</v-btn>
<!-- // TODO: merge the bottom 2 into 1 reusable component --> <!-- // TODO: merge the bottom 2 into 1 reusable component -->
<quality v-if="$refs.player" :video="$refs.player" :sources="sources" /> <quality v-if="$refs.player" :video="$refs.player" :sources="sources" />
<speed v-if="$refs.player" :video="$refs.player" /> <speed v-if="$refs.player" :video="$refs.player" />
@ -151,6 +237,18 @@
:fullscreen="isFullscreen" :fullscreen="isFullscreen"
@fullscreen="(controls = $refs.player.paused), handleFullscreenChange()" @fullscreen="(controls = $refs.player.paused), handleFullscreenChange()"
/> />
<v-btn
v-if="isFullscreen"
fab
text
small
style="position: absolute; bottom: 0.25rem; right: 0.25rem"
color="white"
disabled
@click.stop=""
>
<v-icon>mdi-cards-outline</v-icon>
</v-btn>
</div> </div>
<progressbar <progressbar
v-if="$refs.player" v-if="$refs.player"

View File

@ -1,12 +1,7 @@
<template> <template>
<div <div
style=" style="color: #fff; left: 1rem; font-size: 0.75rem; position: absolute"
color: #fff; :style="fullscreen ? 'bottom: 4.25rem' : 'bottom: 1rem'"
left: 1rem;
bottom: 1rem;
font-size: 0.75rem;
position: absolute;
"
> >
{{ watched }} {{ watched }}
<span style="color: #aaa"> / {{ duration }} </span> <span style="color: #aaa"> / {{ duration }} </span>
@ -15,7 +10,16 @@
<script> <script>
export default { export default {
props: ["video"], props: {
video: {
type: Object,
required: true,
},
fullscreen: {
type: Boolean,
required: true,
},
},
data() { data() {
return { return {
watched: 0, watched: 0,