幻灯片
QCarousel 组件允许您使用幻灯片以更少的空间显示更多信息,对于创建向导或图库也很有用。
QCarousel API
QCarouselControl API
QCarouselSlide API
用法
TIP
如果您在 QCarouselSlide 中添加了可以滑动导航的图片,那么您可能需要设置 draggable="false"
,否则浏览器的默认行为可能会产生负面影响。
Keep Alive
请注意 QCarousel 组件的
keep-alive
属性,如果您使用这个功能,就不要再使用 vue3 原生的<keep-alive>
组件来包裹 QCarousel 组件。如果您需要
keep-alive-include
或keep-alive-exclude
属性,那么 QCarouselSlide 的name
属性必须是有效的 Vue 组件名称(不允许空格,不要以数字开头等)。
基础
下面是一个不带导航按钮的最基础的幻灯片示例(只带有动画和自定义的过渡效果),通过 v-model
来控制当前展示的画面。
<template>
<div class="q-pa-md">
<q-carousel
v-model="slide"
transition-prev="slide-right"
transition-next="slide-left"
animated
control-color="primary"
class="rounded-borders"
>
<q-carousel-slide name="style" class="column no-wrap flex-center">
<q-icon name="style" color="primary" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="tv" class="column no-wrap flex-center">
<q-icon name="live_tv" color="primary" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="layers" class="column no-wrap flex-center">
<q-icon name="layers" color="primary" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="map" class="column no-wrap flex-center">
<q-icon name="terrain" color="primary" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
</q-carousel>
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="slide"
:options="[
{ label: 1, value: 'style' },
{ label: 2, value: 'tv' },
{ label: 3, value: 'layers' },
{ label: 4, value: 'map' }
]"
/>
</div>
</div>
</template>
过渡
下面的示例中:
- 这里只展示了部分的过渡动画,完整的列表请见Transitions页面.
- 除了点击按钮来切换页面,您也可以使用手指滑动(或者使用鼠标滑动,按下鼠标后瞬速左右拖动后松开)。
<template>
<div class="q-pa-md">
<div class="q-gutter-md">
<q-carousel
v-model="slide"
transition-prev="scale"
transition-next="scale"
swipeable
animated
control-color="white"
navigation
padding
arrows
height="300px"
class="bg-primary text-white shadow-1 rounded-borders"
>
<q-carousel-slide name="style" class="column no-wrap flex-center">
<q-icon name="style" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="tv" class="column no-wrap flex-center">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="layers" class="column no-wrap flex-center">
<q-icon name="layers" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="map" class="column no-wrap flex-center">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
</q-carousel>
<q-carousel
v-model="slide"
transition-prev="jump-right"
transition-next="jump-left"
swipeable
animated
control-color="white"
prev-icon="arrow_left"
next-icon="arrow_right"
navigation-icon="radio_button_unchecked"
navigation
padding
arrows
height="300px"
class="bg-purple text-white shadow-1 rounded-borders"
>
<q-carousel-slide name="style" class="column no-wrap flex-center">
<q-icon name="style" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="tv" class="column no-wrap flex-center">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="layers" class="column no-wrap flex-center">
<q-icon name="layers" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="map" class="column no-wrap flex-center">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
</q-carousel>
</div>
</div>
</template>
垂直
<template>
<div class="q-pa-md">
<q-carousel
v-model="slide"
vertical
transition-prev="slide-down"
transition-next="slide-up"
swipeable
animated
control-color="white"
navigation-icon="radio_button_unchecked"
navigation
padding
arrows
height="300px"
class="bg-purple text-white shadow-1 rounded-borders"
>
<q-carousel-slide name="style" class="column no-wrap flex-center">
<q-icon name="style" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="tv" class="column no-wrap flex-center">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="layers" class="column no-wrap flex-center">
<q-icon name="layers" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="map" class="column no-wrap flex-center">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
</q-carousel>
</div>
</template>
控件类型
这里的控件是指的是箭头和导航按钮,虽然它们是按钮元素,但是仍可以选择它们的类型来更好地应对您的设计。control-color
和 control-text-color
属性也会对您有帮助。
<template>
<div class="q-pa-md">
<q-option-group
v-model="controlType"
:options="controlTypeOptions"
color="purple"
inline
class="q-mb-md"
/>
<q-carousel
v-model="slide"
swipeable
animated
:control-type="controlType"
control-color="purple"
navigation
padding
arrows
height="300px"
class="text-purple rounded-borders"
>
<q-carousel-slide name="style" class="column no-wrap flex-center">
<q-icon name="style" size="56px" />
<div class="q-mt-md text-center text-black">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="tv" class="column no-wrap flex-center">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md text-center text-black">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="layers" class="column no-wrap flex-center">
<q-icon name="layers" size="56px" />
<div class="q-mt-md text-center text-black">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="map" class="column no-wrap flex-center">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md text-center text-black">
{{ lorem }}
</div>
</q-carousel-slide>
</q-carousel>
</div>
</template>
导航的位置
<template>
<div class="q-pa-md">
<q-option-group
v-model="navPos"
:options="navigationPositions"
color="purple"
inline
class="q-mb-md"
/>
<q-carousel
v-model="slide"
swipeable
animated
:navigation-position="navPos"
navigation
padding
height="300px"
class="bg-purple text-white rounded-borders"
>
<q-carousel-slide name="style" class="column no-wrap flex-center">
<q-icon name="style" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="tv" class="column no-wrap flex-center">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="layers" class="column no-wrap flex-center">
<q-icon name="layers" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="map" class="column no-wrap flex-center">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
</q-carousel>
</div>
</template>
自定义导航
关于navigation-icon
插槽的完整属性列表,请见页面上方的 API 卡片
<template>
<div class="q-pa-md">
<q-carousel
v-model="slide"
transition-prev="scale"
transition-next="scale"
swipeable
animated
control-color="white"
navigation
padding
arrows
height="300px"
class="bg-primary text-white shadow-1 rounded-borders"
>
<template v-slot:navigation-icon="{ active, btnProps, onClick }">
<q-btn v-if="active" size="lg" icon="home" color="yellow" flat round dense @click="onClick" />
<q-btn v-else size="sm" :icon="btnProps.icon" color="white" flat round dense @click="onClick" />
</template>
<q-carousel-slide name="style" class="column no-wrap flex-center">
<q-icon name="style" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="tv" class="column no-wrap flex-center">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="layers" class="column no-wrap flex-center">
<q-icon name="layers" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="map" class="column no-wrap flex-center">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
</q-carousel>
</div>
</template>
自动填充
下面的示例中您可以对 QCarousel 做出不同的设置后观看控件间 padding 的变化:
<template>
<div class="q-pa-md">
<q-toggle
v-model="padding"
label="Padding"
color="purple"
class="text-weight-bold"
/>
<q-toggle
v-model="vertical"
label="Vertical"
color="purple"
/>
<q-toggle
v-model="arrows"
label="Arrows"
color="purple"
/>
<q-toggle
v-model="navigation"
label="Navigation"
color="purple"
/>
<div class="row items-center q-mb-md">
<div>Navigation position:</div>
<q-option-group
v-model="navPos"
:options="navigationPositions"
color="purple"
inline
/>
</div>
<q-carousel
v-model="slide"
swipeable
animated
:padding="padding"
:vertical="vertical"
:arrows="arrows"
:navigation="navigation"
:navigation-position="navPos"
height="300px"
class="bg-purple text-white rounded-borders"
>
<q-carousel-slide name="style" class="column no-wrap flex-center">
<q-icon name="style" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="tv" class="column no-wrap flex-center">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="layers" class="column no-wrap flex-center">
<q-icon name="layers" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
<q-carousel-slide name="map" class="column no-wrap flex-center">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md text-center">
{{ lorem }}
</div>
</q-carousel-slide>
</q-carousel>
</div>
</template>
媒体内容
<template>
<div class="q-pa-md">
<q-carousel
animated
v-model="slide"
arrows
navigation
infinite
>
<q-carousel-slide :name="1" img-src="https://cdn.quasar.dev/img/mountains.jpg" />
<q-carousel-slide :name="2" img-src="https://cdn.quasar.dev/img/parallax1.jpg" />
<q-carousel-slide :name="3" img-src="https://cdn.quasar.dev/img/parallax2.jpg" />
<q-carousel-slide :name="4" img-src="https://cdn.quasar.dev/img/quasar.jpg" />
</q-carousel>
</div>
</template>
<template>
<div class="q-pa-md">
<q-carousel
v-model="slide"
transition-prev="slide-right"
transition-next="slide-left"
swipeable
animated
control-color="primary"
navigation
padding
arrows
height="300px"
class="bg-grey-1 shadow-2 rounded-borders"
>
<q-carousel-slide :name="1" class="column no-wrap">
<div class="row fit justify-start items-center q-gutter-xs q-col-gutter no-wrap">
<q-img class="rounded-borders col-6 full-height" src="https://cdn.quasar.dev/img/mountains.jpg" />
<q-img class="rounded-borders col-6 full-height" src="https://cdn.quasar.dev/img/parallax1.jpg" />
</div>
</q-carousel-slide>
<q-carousel-slide :name="2" class="column no-wrap">
<div class="row fit justify-start items-center q-gutter-xs q-col-gutter no-wrap">
<q-img class="rounded-borders col-6 full-height" src="https://cdn.quasar.dev/img/parallax2.jpg" />
<q-img class="rounded-borders col-6 full-height" src="https://cdn.quasar.dev/img/quasar.jpg" />
</div>
</q-carousel-slide>
<q-carousel-slide :name="3" class="column no-wrap">
<div class="row fit justify-start items-center q-gutter-xs q-col-gutter no-wrap">
<q-img class="rounded-borders col-6 full-height" src="https://cdn.quasar.dev/img/cat.jpg" />
<q-img class="rounded-borders col-6 full-height" src="https://cdn.quasar.dev/img/linux-avatar.png" />
</div>
</q-carousel-slide>
<q-carousel-slide :name="4" class="column no-wrap">
<div class="row fit justify-start items-center q-gutter-xs q-col-gutter no-wrap">
<q-img class="rounded-borders col-6 full-height" src="https://cdn.quasar.dev/img/material.png" />
<q-img class="rounded-borders col-6 full-height" src="https://cdn.quasar.dev/img/donuts.png" />
</div>
</q-carousel-slide>
</q-carousel>
</div>
</template>
<template>
<div class="q-pa-md">
<q-carousel
arrows
animated
v-model="slide"
height="400px"
>
<q-carousel-slide name="first" img-src="https://cdn.quasar.dev/img/mountains.jpg">
<div class="absolute-bottom custom-caption">
<div class="text-h2">First stop</div>
<div class="text-subtitle1">Mountains</div>
</div>
</q-carousel-slide>
<q-carousel-slide name="second" img-src="https://cdn.quasar.dev/img/parallax1.jpg">
<div class="absolute-bottom custom-caption">
<div class="text-h2">Second stop</div>
<div class="text-subtitle1">Famous City</div>
</div>
</q-carousel-slide>
<q-carousel-slide name="third" img-src="https://cdn.quasar.dev/img/parallax2.jpg">
<div class="absolute-bottom custom-caption">
<div class="text-h2">Third stop</div>
<div class="text-subtitle1">Famous Bridge</div>
</div>
</q-carousel-slide>
</q-carousel>
</div>
</template>
<template>
<div class="q-pa-md q-gutter-sm">
<q-carousel
animated
v-model="slide"
infinite
>
<q-carousel-slide name="soft-jazz">
<q-video
class="absolute-full"
src="https://www.youtube.com/embed/k3_tw44QsZQ"
/>
</q-carousel-slide>
<q-carousel-slide name="Rihanna">
<q-video
class="absolute-full"
src="https://www.youtube.com/embed/kOkQ4T5WO9E"
/>
</q-carousel-slide>
<q-carousel-slide name="ibiza">
<q-video
class="absolute-full"
src="https://www.youtube.com/embed/p87miJIYEEk"
/>
</q-carousel-slide>
</q-carousel>
<div class="row justify-center">
<q-btn-toggle
glossy
v-model="slide"
:options="[
{ label: 'Soft Jazz', value: 'soft-jazz' },
{ label: 'Rihanna', value: 'Rihanna' },
{ label: 'Ibiza Mix', value: 'ibiza' }
]"
/>
</div>
</div>
</template>
在下面的示例中,加入thumbnails
属性,会自动生成缩略图,缩略图只适用于图片内容的幻灯片。
<template>
<div class="q-pa-md">
<q-carousel
swipeable
animated
v-model="slide"
thumbnails
infinite
>
<q-carousel-slide :name="1" img-src="https://cdn.quasar.dev/img/mountains.jpg" />
<q-carousel-slide :name="2" img-src="https://cdn.quasar.dev/img/parallax1.jpg" />
<q-carousel-slide :name="3" img-src="https://cdn.quasar.dev/img/parallax2.jpg" />
<q-carousel-slide :name="4" img-src="https://cdn.quasar.dev/img/quasar.jpg" />
</q-carousel>
</div>
</template>




TIP
不要将navigation
导航属性和thumbnails
缩略图属性一起使用,因为第一个会取代后者,这样就不会显示缩略图。
无限滚动和自动播放
您可以将鼠标移到幻灯片上来暂停自动播放
<template>
<div class="q-pa-md">
<q-carousel
animated
v-model="slide"
navigation
infinite
:autoplay="autoplay"
arrows
transition-prev="slide-right"
transition-next="slide-left"
@mouseenter="autoplay = false"
@mouseleave="autoplay = true"
>
<q-carousel-slide :name="1" img-src="https://cdn.quasar.dev/img/mountains.jpg" />
<q-carousel-slide :name="2" img-src="https://cdn.quasar.dev/img/parallax1.jpg" />
<q-carousel-slide :name="3" img-src="https://cdn.quasar.dev/img/parallax2.jpg" />
<q-carousel-slide :name="4" img-src="https://cdn.quasar.dev/img/quasar.jpg" />
</q-carousel>
</div>
</template>
控件
<template>
<div class="q-pa-md">
<q-carousel
swipeable
animated
v-model="slide"
:autoplay="autoplay"
ref="carousel"
infinite
>
<q-carousel-slide :name="1" img-src="https://cdn.quasar.dev/img/mountains.jpg" />
<q-carousel-slide :name="2" img-src="https://cdn.quasar.dev/img/parallax1.jpg" />
<q-carousel-slide :name="3" img-src="https://cdn.quasar.dev/img/parallax2.jpg" />
<q-carousel-slide :name="4" img-src="https://cdn.quasar.dev/img/quasar.jpg" />
<template v-slot:control>
<q-carousel-control
position="top-right"
:offset="[18, 18]"
class="text-white rounded-borders"
style="background: rgba(0, 0, 0, .3); padding: 4px 8px;"
>
<q-toggle dense dark color="orange" v-model="autoplay" label="Auto Play" />
</q-carousel-control>
<q-carousel-control
position="bottom-right"
:offset="[18, 18]"
class="q-gutter-xs"
>
<q-btn
push round dense color="orange" text-color="black" icon="arrow_left"
@click="$refs.carousel.previous()"
/>
<q-btn
push round dense color="orange" text-color="black" icon="arrow_right"
@click="$refs.carousel.next()"
/>
</q-carousel-control>
</template>
</q-carousel>
</div>
</template>
搭配 QScrollArea
请注意下面两个示例中如何使用QScrollArea。还要注意第二个示例中的q-carousel--padding
CSS 类名。
<template>
<div class="q-pa-md">
<q-carousel
v-model="slide"
swipeable
animated
padding
arrows
navigation
navigation-icon="radio_button_unchecked"
height="300px"
class="bg-purple text-white rounded-borders"
>
<q-carousel-slide name="style" class="text-center">
<q-scroll-area class="fit">
<q-icon name="style" size="56px" />
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
</q-scroll-area>
</q-carousel-slide>
<q-carousel-slide name="tv" class="text-center">
<q-scroll-area class="fit">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
</q-scroll-area>
</q-carousel-slide>
<q-carousel-slide name="layers" class="text-center">
<q-scroll-area class="fit">
<q-icon name="layers" size="56px" />
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
</q-scroll-area>
</q-carousel-slide>
<q-carousel-slide name="map" class="text-center">
<q-scroll-area class="fit">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
</q-scroll-area>
</q-carousel-slide>
</q-carousel>
</div>
</template>
<template>
<div class="q-pa-md">
<q-carousel
v-model="slide"
swipeable
animated
arrows
navigation
navigation-icon="radio_button_unchecked"
control-type="regular"
control-color="orange"
control-text-color="grey-8"
height="300px"
class="bg-purple text-white rounded-borders"
>
<q-carousel-slide name="style" class="q-pa-none">
<q-scroll-area class="fit">
<div class="column no-wrap flex-center q-carousel--padding">
<q-icon name="style" size="56px" />
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
</div>
</q-scroll-area>
</q-carousel-slide>
<q-carousel-slide name="tv" class="q-pa-none">
<q-scroll-area class="fit">
<div class="column no-wrap flex-center q-carousel--padding">
<q-icon name="live_tv" size="56px" />
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
</div>
</q-scroll-area>
</q-carousel-slide>
<q-carousel-slide name="layers" class="q-pa-none">
<q-scroll-area class="fit">
<div class="column no-wrap flex-center q-carousel--padding">
<q-icon name="layers" size="56px" />
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
</div>
</q-scroll-area>
</q-carousel-slide>
<q-carousel-slide name="map" class="q-pa-none">
<q-scroll-area class="fit">
<div class="column no-wrap flex-center q-carousel--padding">
<q-icon name="terrain" size="56px" />
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
<div class="q-mt-md">
{{ lorem }}
</div>
</div>
</q-scroll-area>
</q-carousel-slide>
</q-carousel>
</div>
</template>
全屏
<template>
<div class="q-pa-md">
<q-carousel
swipeable
animated
arrows
v-model="slide"
v-model:fullscreen="fullscreen"
infinite
>
<q-carousel-slide :name="1" img-src="https://cdn.quasar.dev/img/mountains.jpg" />
<q-carousel-slide :name="2" img-src="https://cdn.quasar.dev/img/parallax1.jpg" />
<q-carousel-slide :name="3" img-src="https://cdn.quasar.dev/img/parallax2.jpg" />
<q-carousel-slide :name="4" img-src="https://cdn.quasar.dev/img/quasar.jpg" />
<template v-slot:control>
<q-carousel-control
position="bottom-right"
:offset="[18, 18]"
>
<q-btn
push round dense color="white" text-color="primary"
:icon="fullscreen ? 'fullscreen_exit' : 'fullscreen'"
@click="fullscreen = !fullscreen"
/>
</q-carousel-control>
</template>
</q-carousel>
</div>
</template>