File manager - Edit - /var/www/html/portal/public/pmar/js/galeria.js
Back
const apiKey = '96dcd163d47ad5ac13a36ba4ef3ee2fb'; const userId = '195724072@N05'; const apiUrl = `https://www.flickr.com/services/rest/?method=flickr.photosets.getList&api_key=${apiKey}&user_id=${userId}&format=json&nojsoncallback=1`; $.getJSON(apiUrl, function (response) { if (response.stat === 'ok') { let albums = response.photosets.photoset; // Ordena por data de criação (mais recentes primeiro) albums.sort((a, b) => parseInt(b.date_create) - parseInt(a.date_create)); // Seleciona os 24 álbuns mais recentes albums = albums.slice(0, 24); let slidesHtml = ''; albums.forEach((album) => { const albumCover = `https://live.staticflickr.com/${album.server}/${album.primary}_${album.secret}_z.jpg`; const albumLink = `https://www.flickr.com/photos/${userId}/albums/${album.id}`; const albumTitle = album.title._content; slidesHtml += ` <li class="swiper-slide"> <div onclick="window.open('${albumLink}', '_blank')" class="card card-container"> <img class="w-100 card-image" src="${albumCover}" alt="${albumTitle}" style="object-fit: cover;"> <div class="card-overlay"> <h5 class="card-title">${albumTitle}</h5> </div> </div> </li> `; }); // Preencher a lista de álbuns $('#album-list').empty().append(slidesHtml); // Desabilitar o preloader quando os álbuns forem carregados $('#preloader').fadeOut(); // Fade out para esconder o preloader suavemente const swiper = new Swiper('.card-wrapper', { loop: false, // Mantenha o loop desabilitado spaceBetween: 0, // Remove o espaço entre os slides autoplay: false, pagination: { el: '.swiper-pagination', clickable: true, dynamicBullets: true, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, breakpoints: { 0: { slidesPerView: 1, spaceBetween: 10, // Menos espaço entre os slides em telas pequenas }, 768: { slidesPerView: 2, spaceBetween: 20, // Espaço um pouco maior em telas médias }, 1024: { slidesPerView: 3, spaceBetween: 30, // Espaço maior em telas grandes }, }, slidesPerGroup: 1, preloadImages: true, // Carregar as imagens antecipadamente watchSlidesProgress: true, // Monitorar o progresso dos slides on: { init: function () { // Garantir que todos os slides sejam visíveis desde o início this.slides.forEach(slide => slide.style.opacity = 1); // Evitar o espaço em branco no final this.wrapperEl.style.paddingBottom = '0px'; // Garantir que o paddingBottom esteja ajustado checkNavigationState(this); // Verifica a navegação ao inicializar }, slideChange: function () { // Ajuste o padding ao trocar de slide this.wrapperEl.style.paddingBottom = '0px'; this.slides.forEach(slide => slide.style.opacity = 1); checkNavigationState(this); // Verifica a navegação ao mudar de slide }, reachEnd: function () { // Quando chegar ao final, desabilite o próximo botão this.navigation.nextEl.classList.add('swiper-button-disabled'); this.wrapperEl.style.paddingBottom = '0px'; // Ajuste o padding }, fromEdge: function () { // Quando estiver de volta ao início, reabilite o botão e ajuste o padding this.navigation.nextEl.classList.remove('swiper-button-disabled'); this.wrapperEl.style.paddingBottom = '0px'; // Ajuste o padding }, } }); // Função para verificar a condição de desabilitar o botão 'next' para telas maiores que 1024px function checkNavigationState(swiperInstance) { const windowWidth = window.innerWidth; const maxSlides = 19; // Desabilitar navegação ao chegar no slide 21 const totalSlides = swiperInstance.slides.length; // Verifica se a tela é maior que 1024px e se o slide 21 foi alcançado if (windowWidth > 1024 && swiperInstance.activeIndex >= maxSlides - 1) { swiperInstance.navigation.nextEl.classList.add('swiper-button-disabled'); } else { swiperInstance.navigation.nextEl.classList.remove('swiper-button-disabled'); } } // Verifica a navegação ao redimensionar a tela window.addEventListener('resize', function () { checkNavigationState(swiper); }); } else { console.error('Erro ao carregar os álbuns do Flickr:', response.message); } });
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings