Right to Carry

Illinois ‘Assault Weapon’ Ban Struck Down by Federal Judge

Reading Time: 3:59 min

The headlong rush by Illinois authorities to bring the hammer down on law-abiding gun owners suffered an enormous setback Friday when a federal judge issued a permanent injunction against the…

View post

North Carolina Woman Avoids Charges in Self-Defense Shooting of Ex-Boyfriend

Reading Time: 2:22 min

A North Carolina woman received good news this week when prosecutors determined she shot her ex-boyfriend in self-defense as he attempted to break into her home. The terrifying incident unfolded…

View post

How To Zero A Rifle For Dummies

Reading Time: 4:33 min

How To Zero A Rifle For Dummies When preparing to hit the shooting range, one of the most important steps many shooters overlook is boresighting their rifle. This critical initial…

View post

Illinois ‘Assault Weapon’ Ban Struck Down by Federal Judge

Reading Time: 3:59 min

The headlong rush by Illinois authorities to bring the hammer down on law-abiding gun owners suffered an enormous setback Friday when a federal judge issued a permanent injunction against the…

View post

Memphis Voters Approve Pointless Gun Control Referendum

Reading Time: 2:19 min

When is a referendum a meaningless exercise in posturing and grandstanding designed to draw a few votes and zero results? In the case of the gun control question before Memphis…

View post

Woman Allegedly Abused by Ex-Boyfriend Uses Second Amendment to Fight Back

Reading Time: 2:22 min

It is a story that is far too common. A jilted husband or boyfriend seeks revenge against their ex-partner and pathetically resorts to violence. It is also far too familiar…

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>