Quantcast
Channel: Image slider dinámico en Laravel, esconder las demás imágenes - Stack Overflow en español
Viewing all articles
Browse latest Browse all 2

Image slider dinámico en Laravel, esconder las demás imágenes

$
0
0

¿Cómo puedo hacer un image slider dinámico en Laravel? He podido mostrar la primera imagen y manetener las que le siguen "ocultas" pero no puedo hacer que al hacer clic en el botón la primera se "esconda" y que las que le siguen, que se vean:

<x-faro-posts-img-modal hash="faro-posts-img-modal-{{$post->id}}"><div class="slider-items">        @foreach($post->images as $image)<div class="inset-0 flex items-center justify-between md:w-96 h-full mx-auto                                            {{ $loop->first ? 'active' : 'hidden'}}"><img src="{{ $image->name }}" alt="gallery" class="h-full"></div>        @endforeach</div><div class="w-full absolute flex items-center justify-between"><x-left-chevron /><x-right-chevron /></div></x-faro-posts-img-modal>

Esto me permite ver la primer imagen pero no las demás cuando hago clic sobre el botón; para ver la primera usé la variable de $loop de Blade, pero ¿cómo puedo hacer que se vean las demás al presionar ese botón?

Este es mi Javascript:

var slides = document.querySelector('.slider-items').children;var nextSlide = document.querySelector('.right-slide');var prevSlide = document.querySelector('.left-slide');var totalSlides = slides.length;var index = 0;nextSlide.onclick = function () {     next("next");}prevSlide.onclick = function () {     next("prev");}function next(direction) {   if (direction == "next") {        index++;        if (index == totalSlides) {            index = 0;        }   }   else {        if (index == 0) {            index = totalSlides-1;        }        else {            index--;        }    }    for (i = 0; i < slides.length;i++) {        slides[i].classList.remove("active");    }  slides[index].classList.add("active");     }

La verdad es que no entiendo qué sucede con los demás divs cuando tengo ese $loop, ya que he tratado varias formas:

{{ $loop->index || $loop->iteration ? 'active' : 'hidden' }} 

O sea que tome en cuenta la primera iteración (la posición 0) y las que le siguen después de esa (posición 1) sean incluidas en el if. Esto lo tendría que llevar a cabo el botón porque es el que quita o pone la clase de active, pero esto ni siquiera muestra la primera imagen.

Otro camino ha sido:

Poner en el div hijo de .slider-items la clase .active, y en la imagen lo siguiente:

{{ $loop->remaining ? 'active' : 'hidden'}}

O sea que el primer hijo de slider-items tendrá la clase de .active y también consigo ver la primer foto del array, pero las imagenes después de esa no se pueden ver. He tratado estos y muchos otros caminos pero ninguno me ha dado resultado.


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images