Right to Carry

Florida Senate Blockades Effort to Restore Gun Rights to Young Adults

Reading Time: 2:27 min

Despite strong support from Florida Gov. Ron DeSantis (R) and fellow Second Amendment advocates, the push to return the state’s minimum age to purchase rifles and other long guns to…

View post

Missouri Lawmakers Propose Bill Modeled on Second Amendment Preservation Act

Reading Time: 2:33 min

If at first you don’t succeed, try, try again. Of course, a few changes in the process that did not work might be in order, and that’s the thinking of…

View post

Colorado Lawmakers Seek Federal Assistance to Fight Sweeping Gun Control Law

Reading Time: 2:25 min

Colorado legislators who support Second Amendment rights are appalled at the state’s recent enactment of a sweeping package of gun control laws, and they are asking for federal intervention. While…

View post

Supreme Court Rejects Appeal, Allows Minnesota’s Young Adults to Own and Carry Guns

Reading Time: 2:39 min

The unmistakable momentum toward recognizing the fundamental rights of young adults to keep and bear arms continued this week. The U.S. Supreme Court rejected Minnesota’s attempt to deny this freedom…

View post

Iowa Expands Second Amendment Rights for Young Adults

Reading Time: 2:22 min

Young Iowans secured a significant victory Friday when Gov. Kim Reynolds (R) signed a bill into law protecting their Second Amendment rights. House File 924 guarantees the freedom of adults…

View post

Advocates Score Major Victory for Non-Residents Seeking Concealed Carry Rights in California

Reading Time: 4:4 min

The patchwork quilt of arbitrary state restrictions on Second Amendment rights is a thorn in the side of law-abiding gun owners across the nation. But now, thanks to the combined…

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>