2A News

NSSF: American Civilians Now Own Over 500 Million Firearms

Reading Time: 1:51 min

If anti-gunners are ever to reach their goal of a U.S. without firearms, they have their work cut out for them. A new report by the National Shooting Sports Foundation…

View post

Michigan School District Rolls Out NRA’s Gun Safety Program for Children

Reading Time: 1:59 min

There are hundreds of millions of firearms in circulation in the U.S., and roughly half of all households have at least one gun. And while the overwhelming majority of owners…

View post

Appeals Court Orders DOJ to Proceed in ‘Engaged in the Business’ Lawsuit

Reading Time: 2:11 min

The relationship between the Department of Justice (DOJ) and the Second Amendment community is fraught with inconsistencies.  While Attorney General Pam Bondi’s (R) agency now throws its considerable weight behind…

View post

Florida Gun Parts Dealer Jailed Over New York Complaint

Reading Time: 2:28 min

An Orlando man continues to languish behind bars over his refusal to hand over the customer list for his firearm parts business. For that offense, Lawrence Michael DeStefano faces possible…

View post

Texas Man Fatally Shoots Suspected Burglar in Early Morning Confrontation

Reading Time: 1:50 min

The foolishness of attempting to break into another person’s home cannot be overstated, but these alarming incidents continue to occur. A suspected Texas burglar paid the ultimate price for his…

View post

Georgia Bill: Citizens Could Sue Cities Over 2A Infringements

Reading Time: 1:59 min

Savannah officials know they lack a legal leg to stand on for their ongoing dispute with the state over gun restrictions, and they may now face financial consequences for infringing…

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>