2A News

Chicago Man Fires on Pair of Alleged Carjackers

Reading Time: 1:53 min

Chicago officials are well known for their opposition to gun rights, and along with Illinois state lawmakers, they do everything in their power to build walls between the good people…

View post

U of Wyoming to Spearhead National Second Amendment Initiative

Reading Time: 3:32 min

The level of misinformation surrounding the Second Amendment will be addressed under a new program funded by the Trump administration. The University of Wyoming College of Law’s Firearms Research Center…

View post

Ex-ATF Official Fighting Gun Rights Through Everytown

Reading Time: 3:33 min

When they tell you who they really are, believe them. Ammoland News recently spotlighted the work of Marianna Mitchem, a former official with the Bureau of Alcohol, Tobacco, Firearms, and…

View post

AG Bondi: Second Amendment Rights Are Not Second-Class

Reading Time: 2:3 min

As the Department of Justice (DOJ) launches the Second Amendment Rights Division, its leader reaffirmed her position that gun rights are not lesser freedoms that may be whittled down to…

View post

Weapons Maker Sues California Over Ban of ‘Less Lethal’ Firearms

Reading Time: 2:8 min

California’s ongoing war with the Second Amendment extends beyond its fight to suppress gun rights. The state decided along the way that, even as it attempted to impede firearm ownership,…

View post

November Firearm Sales Remain Strong Despite Softening Market

Reading Time: 1:56 min

Gun sales are a convenient barometer of just how healthy the Second Amendment remains in modern America. This success comes despite influential anti-gun lawmakers and mainstream media that consistently parrots…

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>