Right to Carry

Appeals Court Hears Oral Arguments Over ‘Gun-Free’ Buffer Zones

Reading Time: 2:19 min

Are 1,000-foot buffer zones around schools where guns are not allowed constitutional? That question will be determined by the Fifth Circuit Court of Appeals, which heard arguments last week from…

View post

Armed Self-Defense a Risky Proposition in Minnesota After Bill’s Failure

Reading Time: 2:27 min

The fundamental right for law-abiding citizens to exercise armed self-defense in Minnesota suffered a significant blow Thursday. The House of Representatives rejected a bill to enshrine this freedom into law.…

View post

Armed Self-Defense a Risky Proposition in Minnesota After Bill’s Failure

Reading Time: 2:27 min

The fundamental right for law-abiding citizens to exercise armed self-defense in Minnesota suffered a significant blow Thursday. The House of Representatives rejected a bill to enshrine this freedom into law.…

View post

February Gun Sales Plummet Nine Percent to Second-Worst Level in 13 Years

Reading Time: 2:27 min

Firearm sales in February plunged to levels virtually unseen in well over a decade. Experts note, however, that the dip is not due to a loss of enthusiasm among the…

View post

Colorado Hunting Enthusiasts Welcome Good News from Legislature

Reading Time: 2:26 min

Make no mistake. One of the myriad of ways that anti-gunners are going after the people’s Second Amendment rights is through attacks on sporting traditions such as hunting. Multiple states…

View post

Buyer’s Remorse: DeSantis Urges Repeal of Florida Gun Control Laws Passed After Parkland Shooting

Reading Time: 3:56 min

It has been said that legislation passed under duress or in emergencies results in bad law. For Florida Gov. Ron DeSantis (R), that is what took place after 2018’s Parkland…

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>