2A News

Las Vegas Homeowner Shoots Two Robbery Suspects

Reading Time: 2:2 min

A law-abiding citizen should not expect to be accosted in their own garage just going through a typical day, and there might not seem to be much of a need…

View post

Appeals Court Dismisses Indiana City’s Lawsuit Against Smith & Wesson—Filed in 1999

Reading Time: 3:28 min

Even the staunchest Second Amendment supporter may be forgiven if they have not kept up with proceedings in Smith & Wesson Corp. v. City of Gary. After all, it meandered…

View post

Virginia Proposal Could Harshly Impact Small Gun Shops

Reading Time: 1:52 min

The newly elected anti-Second Amendment regime in Virginia had not even taken office before the latest attack on gun rights emerged. Governor-Elect Abigail Spanberger (D) will not be sworn in…

View post

Texas Man Uses Firearm to Stop Alleged Attempt to Run Him Down

Reading Time: 1:58 min

As is glaringly apparent from the news lately, guns are hardly the only lethal weapons available to violent criminals. Everything from knives to sticks and rocks is regularly wielded against…

View post

Illinois Rings in 2026 With More Infringements on 2A Rights

Reading Time: 2:9 min

It is the unfortunate reality of living in the Land of Lincoln that, as a gun owner, you are subjected to some of the harshest firearm restrictions in the U.S.…

View post

California’s Gun Barrel and Hobby Weapon Restrictions Take Effect

Reading Time: 1:54 min

Make no mistake: the blueprint established by California’s anti-Second Amendment regime will be imposed on the entire nation if its supporters prevail.  Thankfully, at least for now, the damage wrought…

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>