2A News

Court Grants Rehearing in Pivotal District of Columbia 2A Case

Reading Time: 3:30 min

The District of Columbia back in 2008 decided that its law-abiding citizens did not have the freedom to possess standard-capacity firearm magazines capable of holding more than 10 rounds of…

View post

Charlotte Couple Rescued by Ready Firearm When Intruder Struck

Reading Time: 2:2 min

Little is more chilling than the prospect of confronting a violent criminal in your own home in the middle of the night. For all the talk of hunting and sport…

View post

Appeals Court: Machine Guns Not Protected by Second Amendment

Reading Time: 1:52 min

Machine guns are dangerous and unusual firearms, according to the U.S. Court of Appeals for the Eleventh Circuit.  Basing their decision largely on the Supreme Court’s Heller ruling, the bench…

View post

Report: Jewish Group Turns to NRA Amid Rising Threats

Reading Time: 1:59 min

In a perfect world, a person or group’s politics and religion should have no bearing on their safety as they move through modern society. But we live in an imperfect…

View post

Anti-2A Crusaders Propose Taking Virginia’s Gun Control Regime Nationwide

Reading Time: 1:54 min

The frequency with which anti-gun stalwarts claim to “support the Second Amendment” would be high comedy if it were not so serious. New Virginia Gov. Abigail Spanberger (D) uttered those…

View post

GOA Demands Investigation Into ‘Alarming Breaches’ of Member’s Privacy

Reading Time: 1:58 min

The Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) is the federal law enforcement agency charged with enforcing laws related to, among other things, constitutionally protected Second Amendment activities. Unfortunately…

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>