document.addEventListener('DOMContentLoaded', () => { const containers = document.querySelectorAll('.ed-container'); containers.forEach(container => { const listItems = container.querySelectorAll('.ed-list-item'); const btnPrev = container.querySelector('.ed-prev'); const btnNext = container.querySelector('.ed-next'); // Elementos do painel principal const mainImg = container.querySelector('.ed-main-img'); const mainCat = container.querySelector('.ed-cat'); const mainDate = container.querySelector('.ed-date'); const mainTitle = container.querySelector('.ed-title-main a'); const mainExcerpt = container.querySelector('.ed-excerpt'); const mainLink = container.querySelector('.ed-read-more'); let currentIndex = 0; const totalItems = listItems.length; if (totalItems === 0) return; // Atualiza a vista principal const updateMainPanel = (index) => { // Remove ativa de todos listItems.forEach(item => item.classList.remove('is-active')); // Adiciona ativa ao selecionado const activeItem = container.querySelector(`.ed-list-item[data-index="${index}"]`); if (!activeItem) return; activeItem.classList.add('is-active'); const data = activeItem.dataset; // Transição Suave Imagem if (mainImg) { mainImg.style.opacity = '0.4'; setTimeout(() => { if (data.img) { mainImg.src = data.img; mainImg.style.display = 'block'; } mainImg.style.opacity = '1'; }, 250); } // Atualização de Textos e Links mainCat.textContent = data.cat; mainDate.textContent = data.date; mainTitle.textContent = data.title; mainTitle.href = data.url; mainExcerpt.textContent = data.excerpt; mainLink.href = data.url; currentIndex = parseInt(index); }; // Eventos de Clique nos Items Laterais listItems.forEach(item => { item.addEventListener('click', function(e) { // Impede navegação ao clicar no bloco apenas para trocar o slider // Se quiseres que o utilizador vá para a página ao clicar, remove o preventDefault e.preventDefault(); updateMainPanel(this.dataset.index); }); item.addEventListener('keydown', function(e) { if (e.key === 'Enter') { e.preventDefault(); updateMainPanel(this.dataset.index); } }); }); // Navegação por Setas if (btnPrev && btnNext) { btnPrev.addEventListener('click', () => { let newIndex = currentIndex - 1; if (newIndex < 0) newIndex = totalItems - 1; updateMainPanel(newIndex); }); btnNext.addEventListener('click', () => { let newIndex = currentIndex + 1; if (newIndex >= totalItems) newIndex = 0; updateMainPanel(newIndex); }); } }); }); 26 de Fevereiro, 2025 - Salesianos
Fevereiro 26, 2025

Day

Ilustração para a campanha de Consignação de IRS com dois jovens que abraçam o mundo, numa referência ao trabalho social que os Salesianos fazem no mundo.

Consignação do IRS à Fundação Salesianos: “Com o seu IRS, plantamos esperança, colhemos futuro”

Este ano, sem qualquer custo, pode destinar 1% do seu IRS a uma entidade à sua escolha. Ao escolher a Fundação Salesianos está, assim, a contribuir para um futuro mais promissor para muitas...
Reportar Erro

Reportar Erro

Encontrou algum problema? Diga-nos o que aconteceu.