2A News

Armed Mother With Baby Hiding In Closet Shoots Home Invader

Reading Time: 3:38 min

Armed mother with baby hiding in closet shoots home invader in Joliet, Illinois, turning a terrifying home invasion into a clear case of self-defense. According to police reports, the woman…

View post

Baltimore Mayor Ignores Facts in Call For AR-15 Ban

Reading Time: 1:59 min

Never let the facts get in the way of a good story is how an adage goes. The same can be said for political proclamations, as the facts have nothing…

View post

Man Shoots Veteran in Wheelchair After Accusing Him of Stolen Valor

Reading Time: 3:1 min

Man Shoots Veteran in Wheelchair After Accusing Him of Stolen Valor — that’s exactly what happened on July 31, 2025, when a confrontation on Seattle’s Pier 55 turned violent. Gregory…

View post

Minnesota Supreme Court Rules in Favor of Firearms Minus Serial Numbers

Reading Time: 1:52 min

The Minnesota Supreme Court considered the legality of unserialized firearms for state residents and returned an interesting ruling. On Wednesday, the high court determined in State v. Vagle that the…

View post

Second Amendment Organizations File Historic Lawsuit Against NFA

Reading Time: 2:5 min

Four leading gun rights organizations, along with a St. Louis gun shop and two individuals, teamed up for a historic lawsuit challenging the National Firearms Act (NFA). The National Rifle…

View post

New York, California Reps Introduce Modern Firearm Safety Act

Reading Time: 1:53 min

Anti-gunners love to cloak their schemes in such terminology as “common sense” and “public safety.” The truth, however, is that their agenda is largely about government control and stripping the…

View post
<script>
  /*Source: https://github.com/Krzysztof-Antosik/Two-direction-Sticky-Sidebar*/
  
  // Verificar el ancho de pantalla al cargar y redimensionar
  function checkScreenWidth() {
    if (window.innerWidth <= 767) {
      // Si la pantalla es menor o igual a 676px, no ejecutar el código
      return;
    }

    const stickyElement = document.querySelector('.fb-sidebar__aside');
    const startPosition = stickyElement.getBoundingClientRect().top;

    let endScroll = window.innerHeight - stickyElement.offsetHeight - 500;
    let currPos = window.scrollY;
    let screenHeight = window.innerHeight;
    let stickyElementHeight = stickyElement.offsetHeight;
    let topGap = 40;
    let bottomGap = 40;

    setTimeout(() => {
      if (stickyElement.hasAttribute('data-top-gap')) {
        const dataTopGap = stickyElement.getAttribute('data-top-gap');
        topGap = dataTopGap === 'auto' ? startPosition : parseInt(dataTopGap);
      }

      if (stickyElement.hasAttribute('data-bottom-gap')) {
        bottomGap = parseInt(stickyElement.getAttribute('data-bottom-gap'));
      }
    }, 100);

    stickyElement.style.position = 'sticky';
    stickyElement.style.top = `${topGap}px`;
    stickyElement.style.height = 'fit-content';

    function positionStickySidebar() {
      endScroll = window.innerHeight - stickyElement.offsetHeight - bottomGap;
      const stickyElementTop = parseInt(stickyElement.style.top.replace('px', ''));

      if (stickyElementHeight + topGap + bottomGap > screenHeight) {
        if (window.scrollY < currPos) {
          if (stickyElementTop < topGap) {
            stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;
          } else if (stickyElementTop >= topGap && stickyElementTop !== topGap) {
            stickyElement.style.top = `${topGap}px`;
          }
        } else {
          if (stickyElementTop > endScroll) {
            stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;
          } else if (stickyElementTop < endScroll && stickyElementTop !== endScroll) {
            stickyElement.style.top = `${endScroll}px`;
          }
        }
      } else {
        stickyElement.style.top = `${topGap}px`;
      }
      currPos = window.scrollY;
    }

    function stickyElementToMe() {
      stickyElement.style.top = `${topGap}px`;
    }

    function updateSticky() {
      screenHeight = window.innerHeight;
      stickyElementHeight = stickyElement.offsetHeight;
      positionStickySidebar();
    }

    setTimeout(() => {
      window.addEventListener('resize', () => {
        currPos = window.scrollY;
        updateSticky();
      });

      document.addEventListener('scroll', updateSticky, {
        capture: true,
        passive: true
      });
    }, 1000);
  }

  // Verificar el ancho de pantalla al cargar y redimensionar
  window.addEventListener('load', checkScreenWidth);
  window.addEventListener('resize', checkScreenWidth);
</script>