2A News

Bloc of 45 Senators Introduces Measure to Mandate Universal Background Checks

Reading Time: 1:52 min

While most Americans were busy preparing to give thanks with family and friends for their many blessings, dozens of anti-Second Amendment lawmakers doubled down on their crusade to eliminate gun…

View post

Miami Homeowner Chases Four Alleged Home Invaders Away, Killing One

Reading Time: 1:54 min

A South Florida homeowner is undoubtedly thankful today that he had the wisdom to have a loaded firearm readily available early Saturday evening. That decision may have saved his life.…

View post

NSSF Takes Stand Against Maryland’s Attack on Weapons Industry

Reading Time: 1:54 min

Established federal law protects the weapons industry from frivolous lawfare intent on bankrupting the very companies that make Second Amendment freedoms possible. The Protection of Lawful Commerce in Arms Act…

View post

Supporters Raise $27k for Oklahoma Woman Fired for Courageous Self-Defense

Reading Time: 2:14 min

A young Oklahoma City mother fired for defending herself from a customer who allegedly tried to strangle her received an overwhelming outpouring of support from the sympathetic community. Stephanie Dilyard,…

View post

SAF Files Motion in Case Against Massachusetts’ Discriminatory Gun Control Regime

Reading Time: 1:52 min

A coalition of influential Second Amendment organizations filed a motion last week for summary judgment in Escher v. Noble. This contentious case challenges the Massachusetts prohibition on young adults purchasing…

View post

Huntsville Man Fatally Shoots Intruder After Retreating Failed

Reading Time: 1:54 min

An Alabama man faced the frightening prospect Tuesday evening of having another person use force to enter their locked apartment and come after them.  And while the state has a…

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>