Right to Carry

Alleged Home Invader Killed in San Diego While Homeowner Called 911

Reading Time: 1:32 min

Another day, another good guy with a gun defends themselves from a violent criminal. This is an all-too-common refrain in 2023, and it bears testimony to the need to be…

View post

Appeals Court Rejects Maryland’s Onerous Handgun Licensing Requirement as Unconstitutional

Reading Time: 1:30 min

Maryland officials a decade ago decided that the state’s law-abiding citizens should not own handguns. To get around the Second Amendment, lawmakers erected a series of draconian barriers in the…

View post

Omaha Mayor Signs Citywide Ban on Bump Stocks, Hobby Gun Kits

Reading Time: 1:31 min

Omaha Mayor Jean Stothert signed a pair of anti-gun measures in her continuing push to suppress the Second Amendment in her Nebraska city. One banned citizens from owning bump stocks…

View post

Anti-Gun Media Sensationalizing Rahimi Supreme Court Case

Reading Time: 3:15 min

Let’s face it. In the age of Twitter and TikTok, many people get their current events in smaller than bite-sized morsels. There’s little reading to the end of the article…

View post

Woman Fatally Shoots Ex as He Allegedly Broke into Her Apartment

Reading Time: 1:30 min

It seems like common sense that after a divorce or breakup, battling ex-partners should go their separate ways and move on with their lives. Thankfully this is normally the case,…

View post

Hero Dad Stripped of Gun Rights After Yelling at Officers

Reading Time: 1:38 min

Many saw the video that went viral after a shocking Nov. 4 incident in California in which a father was attacked as he was entering his home. His wife and…

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>