script>
document.addEventListener('DOMContentLoaded', function () {
const columnas = document.querySelectorAll('.testimonios-col');
columnas.forEach(columna => {
const track = columna.querySelector('.testimonios-track');
const originalContent = Array.from(track.children);
const isDown = columna.classList.contains('down');
// Si la dirección es hacia abajo, invertimos y clonamos al principio
if (isDown) {
originalContent.reverse().forEach(el => {
const clone = el.cloneNode(true);
track.insertBefore(clone, track.firstChild);
});
} else {
// Si es hacia arriba, clonamos al final
originalContent.forEach(el => {
track.appendChild(el.cloneNode(true));
});
}
let direction = isDown ? 1 : -1;
let speed = 0.3;
let offset = isDown ? -track.scrollHeight / 2 : 0;
let isHovered = false;
columna.addEventListener('mouseenter', () => {
isHovered = true;
});
columna.addEventListener('mouseleave', () => {
isHovered = false;
});
function animate() {
const currentSpeed = isHovered ? speed * 0.5 : speed;
offset += direction * currentSpeed;
const trackHeight = track.scrollHeight / 2;
if (!isDown && Math.abs(offset) >= trackHeight) {
offset = 0;
} else if (isDown && offset >= 0) {
offset = -trackHeight;
}
track.style.transform = `translateY(${offset}px)`;
requestAnimationFrame(animate);
}
animate();
});
});