Vuetify - популярный UI-фреймворк для приложений Vue.
В этой статье мы рассмотрим, как работать с фреймворком Vuetify.
Активный класс слайд-элемента
Мы можем изменить активный класс элементов слайда с помощью свойства active-class
:
<template> <v-container class="grey lighten-5"> <v-row> <v-col> <v-sheet class="mx-auto" elevation="8" max-width="800"> <v-slide-group v-model="model" class="pa-4" prev-icon="mdi-minus" next-icon="mdi-plus" show-arrows active-class="success" > <v-slide-item v-for="n in 15" :key="n" v-slot:default="{ active, toggle }"> <v-card :color="active ? 'primary' : 'grey lighten-1'" class="ma-4" height="200" width="100" @click="toggle" > <v-row class="fill-height" align="center" justify="center"> <v-scale-transition> <v-icon v-if="active" color="white" size="48" v-text="'mdi-close-circle-outline'" ></v-icon> </v-scale-transition> </v-row> </v-card> </v-slide-item> </v-slide-group> </v-sheet> </v-col> </v-row> </v-container> </template> <script> export default { name: "HelloWorld", data: () => ({ model: undefined, }), }; </script>
Параметр show-arrows
позволяет отображать стрелку навигации на обоих экранах.
Кроме того, у нас есть опора active-class
, чтобы по-разному стилизовать выбранный элемент.
Обязательный
Мы можем сделать так, чтобы хотя бы один элемент был выбран в группе с помощью свойства mandatory
:
<template> <v-container class="grey lighten-5"> <v-row> <v-col> <v-sheet class="mx-auto" elevation="8" max-width="800"> <v-slide-group v-model="model" class="pa-4" prev-icon="mdi-minus" next-icon="mdi-plus" show-arrows mandatory > <v-slide-item v-for="n in 15" :key="n" v-slot:default="{ active, toggle }"> <v-card :color="active ? 'primary' : 'grey lighten-1'" class="ma-4" height="200" width="100" @click="toggle" > <v-row class="fill-height" align="center" justify="center"> <v-scale-transition> <v-icon v-if="active" color="white" size="48" v-text="'mdi-close-circle-outline'" ></v-icon> </v-scale-transition> </v-row> </v-card> </v-slide-item> </v-slide-group> </v-sheet> </v-col> </v-row> </v-container> </template> <script> export default { name: "HelloWorld", data: () => ({ model: undefined, }), }; </script>
Теперь по умолчанию будет выбран первый элемент.
Псевдо-карусель
Мы можем отображать контент под выбранным слайдом.
Например, мы можем написать:
<template> <v-container class="grey lighten-5"> <v-row> <v-col> <v-sheet class="mx-auto" elevation="8" max-width="800"> <v-slide-group v-model="model" class="pa-4" show-arrows> <v-slide-item v-for="n in 15" :key="n" v-slot:default="{ active, toggle }"> <v-card :color="active ? 'primary' : 'grey lighten-1'" class="ma-4" height="200" width="100" @click="toggle" > <v-row class="fill-height" align="center" justify="center"> <v-scale-transition> <v-icon v-if="active" color="white" size="48" v-text="'mdi-close-circle-outline'" ></v-icon> </v-scale-transition> </v-row> </v-card> </v-slide-item> </v-slide-group> <v-expand-transition> <v-sheet v-if="model != null" color="grey lighten-4" height="200" tile> <v-row class="fill-height" align="center" justify="center"> <h3 class="title">{{ model }}</h3> </v-row> </v-sheet> </v-expand-transition> </v-sheet> </v-col> </v-row> </v-container> </template> <script> export default { name: "HelloWorld", data: () => ({ model: undefined, }), }; </script>
Мы добавили компонент v-expand-transition
под v-slide-group
, чтобы показать пользователю то, что мы хотим.
Мы увидим эффект перехода, когда нажмем на элемент.
model
имеет индекс элемента, по которому мы щелкнули.
Заключение
Мы можем добавлять слайды с помощью компонента v-slide-group
и позволять нам выбирать элементы, когда мы нажимаем на него.
Понравилась эта статья? Если да, то получите больше похожего контента, подписавшись на наш канал YouTube!