Carrusel de animales más fácil de entender

- Botones grandes con texto («Anteriores» / «Siguientes»; en móvil solo flechas, con nombre accesible).
- Contador «1–3 / 10» y la siguiente tarjeta asomando por el borde para que se vea que hay más.
- Última tarjeta «Ver todos los animales» que lleva a la página Adopta.
- Arreglado: al empezar, «Anteriores» no salía desactivado (el scroll-snap desplazaba 4 px).
- Versión del tema 2.3.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-27 16:09:30 +02:00
parent 01ad04bc14
commit f6150bd71b
4 changed files with 65 additions and 13 deletions

View File

@@ -54,6 +54,8 @@
document.querySelectorAll( '[data-ga-carousel]' ).forEach( function ( carousel ) {
var track = carousel.querySelector( '.ga-carousel__track' );
var buttons = carousel.querySelectorAll( '.ga-carousel__btn' );
var count = carousel.querySelector( '.ga-carousel__count' );
var cards = track ? track.querySelectorAll( '.ga-card' ) : [];
if ( ! track ) {
return;
}
@@ -62,6 +64,13 @@
buttons[ 0 ].disabled = track.scrollLeft <= 2;
buttons[ 1 ].disabled = track.scrollLeft >= max;
carousel.classList.toggle( 'is-static', max <= 0 );
// Contador «1–3 / 10»: tarjetas enteras a la vista (la tarjeta «Ver todos» no cuenta).
if ( count && cards.length ) {
var step = cards[ 0 ].offsetWidth + ( parseFloat( getComputedStyle( track ).columnGap ) || 0 );
var first = Math.min( cards.length - 1, Math.round( track.scrollLeft / step ) );
var last = Math.min( cards.length, first + Math.max( 1, Math.floor( ( track.clientWidth + 8 ) / step ) ) );
count.textContent = ( first + 1 ) + ( last > first + 1 ? '–' + last : '' ) + ' / ' + cards.length;
}
}
buttons.forEach( function ( button ) {
button.addEventListener( 'click', function () {