2A News

Iowa Police Sgt. Gives Bizarre Warning After Self-Defense Shooting

Reading Time: 2:15 min

The well-worn script that follows a justified defensive shooting in the U.S. usually results in law enforcement commending the citizen for being their own first responder. The defender, in most…

View post

Va. Authorities Declare ‘Assault Firearm’ Ban Won’t be Enforced

Reading Time: 2:5 min

Virginia’s all-out attack on what are falsely deemed “assault firearms” quickly stirred a wave of opposition. Gun rights stalwarts quickly filed multiple lawsuits, and more legal challenges would not be…

View post

Homeowner Shoots Alleged Intruder Who Then Ran but Left Wallet Behind

Reading Time: 1:56 min

It almost wasn’t fair for the suspect. Imagine casing a residence with intentions of breaking in and stealing someone else’s property or much, much worse. Now consider that the homeowner…

View post

Florida’s 2A Sales Tax Holiday to Return—With a Bonus

Reading Time: 1:57 min

While a handful of members of the Republic waste an enormous amount of time and expense vilifying the Second Amendment, Florida just took another giant step on a better path.…

View post

Virginia Senator Blasts Rebellious Prosecutors to Stop ‘Tough Guy Posturing’

Reading Time: 1:57 min

As a wave of Commonwealth Attorneys tells the state to put their “assault weapons” ban where the sun doesn’t shine, the sponsor of the insidious prohibition on the most popular…

View post

Report: 2026 Could Finish with Lowest US Murder Rate in History

Reading Time: 2:12 min

With anti-gun radicals running in aghast circles over the hundreds of millions of firearms that Americans own, there’s a bit of data that they should check out. The Reload reported…

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>