Miałem ostatnio podobny problem, z tym, że chciałem responsywnie dopasować rozmiar odtwarzacza na stronie.
Rozwiązałem to w ten sposób.
W template na elemencie v-layout (vuetify) dałem zdarzenie v-resize i nasłuchiwanie na metodę onResize()
W data() dodałem obiekt windowSize, który przechowuje rozmiar okna, jego width i height.
w mounted() podmontowałem metodę onResize(), a sama metoda onResize() wygląda tak:
onResize () {
this.windowSize = { w: window.innerWidth - 190, h: window.innerHeight - 230 }
}
Cały kod prezentuje się następująco:
<template>
<v-layout justify-center align-center v-resize="onResize">
// ...
</v-layout>
</template>
<script>
export default {
data () {
return {
windowSize: {
w: 0,
h: 0
}
}
},
mounted () {
this.onResize()
},
methods: {
onResize () {
this.windowSize = { w: window.innerWidth - 190, h: window.innerHeight - 230 } // odejmowane wartości tworzą marginesy
}
}
}
</script>