Estoy tratando de construir un control deslizante simple con alpinejs y tailwindcss. Tenemos un código muy simple que se desliza en dos valores de matriz (voy a convertirlo en un control deslizante de producto):
<div x-data="{ activeSlide: 1, slides: [1, 2, 3, 4, 5], text: ['a', 'b', 'c', 'd', 'e'] }"> previous item <div x-text="text[activeSlide-2] ? text[activeSlide-2] : text[slides.length-1]"></div> <div class="my-5 border border-black"> current item <div class="font-bold" x-text="activeSlide"></div> <div class="font-bold" x-text="text[activeSlide-1]"></div> </div> next item <div x-text="text[activeSlide] ? text[activeSlide] : text[0]"></div> <div class="mt-5"> <button x-on:click='activeSlide= activeSlide === 1 ? slides.length : activeSlide - 1'>Prev</button> <button x-on:click='activeSlide= activeSlide === slides.length ? 1 : activeSlide + 1'>Next</button> </div> </div>El problema es que quiero agregar algún efecto de transición al actualizar los valores de texto x (al cambiar las diapositivas) y la transición x es para x-show o... no para actualizar el valor de texto x.
¿Podría por favor guiarme, cómo puedo agregar algunos efectos al cambiar los valores de x-text? más tarde serán imágenes src y quiero actualizar toda la tarjeta (diapositiva)
Muchas gracias de antemano
Creo que debería hacer algo como
<div x-data="{ activeSlide: 1, slides: [1, 2, 3, 4, 5], text: ['a', 'b', 'c', 'd', 'e'] }"> <template x-for="slide in slides" :key="slide"> <div x-show="activeSlide === slide"> ...Y debe estar bien usar x-transition porque x-show está cambiando...
El primer ejemplo que encontré fue de esta manera, pero quería evitar la duplicación (¡Representará todo enésima vez! y creo que no es bueno). Quería evitar renderizar todas las tarjetas y ocultarlas, solo quería pasar y cambiar los datos, así que se me ocurrió el código en la pregunta.
Entonces, si alguien tiene una forma de usar el código en la pregunta y agregarle una transición, ¡se lo agradeceré!
Gracias de nuevo