Vuetify is a popular UI framework for Vue apps.
In this article, we’ll look at how to work with the Vuetify framework.
Carousel Custom Transition
We can add custom transitions for our carousel.
To do that, we can write:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-carousel>
<v-carousel-item
v-for="(item,i) in items"
:key="i"
:src="item.src"
reverse-transition="fade-transition"
transition="fade-transition"
></v-carousel-item>
</v-carousel>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
items: [
{
src: "https://cdn.vuetifyjs.com/images/carousel/squirrel.jpg",
},
{
src: "https://cdn.vuetifyjs.com/images/carousel/sky.jpg",
},
{
src: "https://cdn.vuetifyjs.com/images/carousel/bird.jpg",
},
],
}),
};
</script>
We have the v-carousel-item
with the transition
and reverse-transition
props to add the transition effects.
Custom Delimiters
We can change the slide delimiter with the delimiter-icon
prop.
For example, we can write:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-card elevation="24" max-width="444" class="mx-auto">
<v-system-bar lights-out></v-system-bar>
<v-carousel
:continuous="false"
:cycle="cycle"
:show-arrows="false"
hide-delimiter-background
delimiter-icon="mdi-minus"
height="300"
>
<v-carousel-item v-for="(slide, i) in slides" :key="i">
<v-sheet :color="colors[i]" height="100%" tile>
<v-row class="fill-height" align="center" justify="center">
<div class="display-3">{{ slide }} Slide</div>
</v-row>
</v-sheet>
</v-carousel-item>
</v-carousel>
<v-list two-line>
<v-list-item>
<v-list-item-avatar>
<v-img src="https://cdn.vuetifyjs.com/images/john.png"></v-img>
</v-list-item-avatar>
<v-list-item-content>
<v-list-item-title>James Smith</v-list-item-title>
<v-list-item-subtitle>Author</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
</v-list>
</v-card>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
colors: [
"green",
"secondary",
"yellow darken-4",
"red lighten-2",
"orange darken-1",
],
slides: [1, 2, 3, 4, 5],
}),
};
</script>
We have the v-carousel
with the v-carousel-item
s.
The v-carousel-item
s are rendered with v-for
.
Below it, we have a list with the v-list
.
The two-line
prop lets us display text in 2 lines.
The delimite-icon
prop in the v-carousel
.
Hide Controls
We can set the show-arrows
prop to false
so that we can hide the arrows.
For example, we can write:
<template>
<v-container>
<v-row>
<v-col col="12">
<v-carousel :show-arrows="false">
<v-carousel-item v-for="(item,i) in items" :key="i" :src="item.src"></v-carousel-item>
</v-carousel>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
name: "HelloWorld",
data: () => ({
items: [
{
src: "https://cdn.vuetifyjs.com/images/carousel/squirrel.jpg",
},
{
src: "https://cdn.vuetifyjs.com/images/carousel/sky.jpg",
},
{
src: "https://cdn.vuetifyjs.com/images/carousel/bird.jpg",
},
],
}),
};
</script>
to add a slideshow without the navigation icons.
Conclusion
We can add carousel transitions, change delimiters, and hide controls with Vuetify.