Carrossel de blocos
Carrossel de blocos
Introdução
O Slider Layout, como o Flex Layout, é uma forma flexível de criar um novo bloco a partir de outros blocos usando children
. Ele permite que sejam criados sliders de outros blocos, como info-card
s e até mesmo flex-layout
s por exemplo.
Com o Slider Layout é possível criar um carrossel não só de imagens, como de qualquer conteúdo que se queira. Para este exemplo, vamos utilizar o Slider Layout para tornar um conjunto de info-cards em um slider.
Slider Layout
Analisando a documentação, vemos que você pode utilizar qualquer array de blocos como children
, assim como no Flex Layout.
Abaixo, segue um exemplo de implementação de um slider-layout com dois info-card
:
"slider-layout#home": {
"children": ["info-card#1", "info-card#2"],
"props": {
"autoplay": {
"timeout": 5000,
"stopOnHover": false
}
}
},
"info-card#1": {
"props": {
"imageUrl": "https://images.unsplash.com/photo-1524185962737-ea7c028a12cd?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80",
"isFullModeStyle": true,
"headline": "Black Friday",
"callToActionText": "Subscribe",
"textPosition": "center"
}
},
"info-card#2": {
"props": {
"imageUrl": "https://images.unsplash.com/photo-1524185962737-ea7c028a12cd?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80",
"isFullModeStyle": true,
"headline": "Black Friday",
"callToActionText": "Subscribe",
"textPosition": "center"
}
}
Atividade
Nesta atividade, vamos criar um slider de marcas para o nosso site:
-
No arquivo
home.jsonc
, declare o blocoslider-layout#home
ao templatestore.home
. -
Crie um arquivo chamado
slider-layout.jsonc
dentro da pasta/store/blocks
; -
Neste arquivo, baseando-se no código acima, substitua os
info-card
declarados como children deslider-layout#home
e adicione 6 componentes de imagemimage
como children. Utilize o formatoimage#brand1
,image#brand2
(...)image#brand6
para declarar os componentes; -
Declare uma prop
src
específica para cadaimage#brand
definido. Utilize as URLs abaixo para cada uma delas:https://appliancetheme.vteximg.com.br/arquivos/flatflat-brand-logo-square1.png
https://appliancetheme.vteximg.com.br/arquivos/flatflat-brand-logo-square2.png
https://appliancetheme.vteximg.com.br/arquivos/flatflat-brand-logo-square3.png
https://appliancetheme.vteximg.com.br/arquivos/flatflat-brand-logo-square4.png
https://appliancetheme.vteximg.com.br/arquivos/flatflat-brand-logo-square5.png
https://appliancetheme.vteximg.com.br/arquivos/flatflat-brand-logo-square6.png
-
Por fim, você deve utilizar a propriedade de
autoplay
no blocoslider-layout#home
. Faça com que o slide aconteça automaticamente a cada 7 segundos e que ele pare quando o usuário passar o mouse em cima do slide.
Note: Lembre-se de acessar a documentação do Slider Layout e Image caso tenha alguma dúvida durante a atividade.
Está com dúvidas?
Veja o gabarito para esta etapa ou acompanhe nosso [office hours] no canal VTEX Developers(https://www.youtube.com/c/VTEXDevelopers)
Ajude-nos a fazer este conteúdo melhor!
Os cursos do VTEX IO são de código aberto. Se você perceber algum problema, pode abrir um pull request!
Faça uma contribuiçãoUpdated 10 months ago