2A News

Report: Ohio Woman Shoots Ex-Boyfriend While on 911 Call

Reading Time: 1:57 min

An Ohio woman early Wednesday morning reportedly shot her ex-boyfriend to death as he allegedly attempted to break into her Harrison Township home. Her three children were likely sleeping when…

View post

SAF: School Illegally Searched 18-Year-Old Gun Owner’s Truck

Reading Time: 1:55 min

The Fourth Amendment was engraved into the Bill of Rights for very specific reasons: to prevent the government from randomly sifting through private property in hopes of finding something–anything–to prosecute…

View post

2A Group Argues for Constitutional Carry Over Reciprocity

Reading Time: 1:57 min

In a perfect world, national reciprocity makes perfect sense. State governments would respect the Second Amendment-guaranteed right to keep and bear arms and minor variations in local laws would not…

View post

Appeals Court Lets Texas State Fair Gun Ban Stand

Reading Time: 1:53 min

Carry rights for lawful Texas gun owners suffered a surprising defeat Thursday when a three-judge panel unanimously upheld a lower court ruling supporting the Texas State Fair’s controversial firearm prohibition.…

View post

Armed Illinois Resident Saves Juvenile from Vicious Dog Attack

Reading Time: 1:56 min

A lawful and ready firearm in the hands of an upstanding citizen is often the front line of defense against violence when there is no one there to save the…

View post

Federal Judge: Remaining NFA Registration Requirement Unconstitutional

Reading Time: 1:57 min

It was bound to happen and finally did.  Roughly a year after Congress erased the hated $200 tax on suppressors and short-barreled rifles (SBRs), a U.S. District Court Judge in…

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>