2A News

Report: Black Gun Owners Seek Justice After Wrongful Arrests

Reading Time: 3:35 min

Gun rights opponents should recall that until modern times, U.S. gun laws tended to discriminate against certain classes of Americans based on race or other factors. These statutes are rightfully…

View post

Bondi Targets DC Police Department Over Gun Rights Suppression

Reading Time: 1:58 min

Attorney General Pam Bondi’s Department of Justice (DOJ) announced on Monday that it is suing Washington, D.C., due to unconstitutional restrictions on gun rights. The District has a long track…

View post

Anti-2A Lawmakers Push to Restore Hated NFA Tax

Reading Time: 2:2 min

The federal budget signed on July 4 this year stripped the dreaded $200 tax on suppressors, short-barreled rifles, and other weapons under the National Firearms Act (NFA). This long-overdue correction…

View post

Lawmakers Question Bondi’s DOJ Over NFA Registration Mandate

Reading Time: 1:55 min

While 2025 saw a course correction in the Department of Justice’s (DOJ) recent antagonism toward Second Amendment rights, the need for vigilance remains. With that in mind, 42 U.S. Senators…

View post

New Hampshire Lawmakers Support Campus Carry After Brown Attack

Reading Time: 1:53 min

Violent criminals choose “soft targets” for a reason. With an unarmed populace, there is far less of a chance that a good guy with a gun will step up and…

View post

Missouri Man Walks Free After Intervening in Alleged Domestic Abuse Incident

Reading Time: 2:7 min

There is great news today for a Missouri man who courageously intervened in a frightening domestic abuse incident at a Jefferson City shopping center in November. After interviewing several witnesses…

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>