2A News

Armed Florida Man Rescues Wife From Alleged Kidnapper

Reading Time: 1:56 min

Criminals generally do not schedule appointments or announce themselves, so it is critically important to be prepared at all times. Violent crime rates are falling, and that should be celebrated,…

View post

AG Bonta Wildly Claims Open Carry ‘Terrorizes Children’

Reading Time: 1:56 min

California’s law-abiding Second Amendment community received welcome news earlier this month when the 9th Circuit Court of Appeals ruled the state’s almost blanket ban on open carry unconstitutional. Judge Lawrence…

View post

Study: US Murder and Violent Crime Rates Plummeted in 2025

Reading Time: 3:21 min

There are an estimated 500 million firearms in circulation in the U.S., and anti-gunners believe this to be the root of all evil.  Then there’s the fact that 29 states…

View post

Maryland’s Version of ‘Vampire Rule’ Struck Down by Appeals Court

Reading Time: 1:54 min

Even as Hawaii’s contentious “vampire rule” is before the U.S. Supreme Court, a lower court last week struck a blow against Maryland’s similar law. The Fourth Circuit Court of Appeals…

View post

Florida Gun Dealer Extradited to New York to Face Charges

Reading Time: 1:59 min

A Florida man targeted by New York officials for selling gun kits and parts is now at the notorious Riker’s Island prison facility after being flown from the Orange County…

View post

SCOTUS Startled by Reliance on Racist Laws to Defend ‘Vampire Rule’

Reading Time: 3:33 min

It’s said that the secret to seeing everything is simply living long enough. If that’s true, the U.S. Supreme Court listened to the claims of a lifetime this week as…

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>