Defensive Gun Use

Broad Daylight Crime in California Shows Why AR-15s Are Essential

Reading Time: 4:10 min

Broad daylight crime in California shows why AR-15s are essential, and the latest smash-and-grab robbery proves it better than any debate ever could. The next time somebody asks you, “Why…

View post

Alleged Mistress Defends Herself from Enraged Wife

Reading Time: 1:54 min

A deadly early morning shooting in Nashville on Monday led investigators to uncover a love triangle that resulted in the alleged mistress using lethal force to defend herself from the…

View post

Armed Mother With Baby Hiding In Closet Shoots Home Invader

Reading Time: 3:38 min

Armed mother with baby hiding in closet shoots home invader in Joliet, Illinois, turning a terrifying home invasion into a clear case of self-defense. According to police reports, the woman…

View post

Man Shoots Veteran in Wheelchair After Accusing Him of Stolen Valor

Reading Time: 3:1 min

Man Shoots Veteran in Wheelchair After Accusing Him of Stolen Valor — that’s exactly what happened on July 31, 2025, when a confrontation on Seattle’s Pier 55 turned violent. Gregory…

View post

Alleged California Burglar Killed by Armed Homeowner

Reading Time: 1:38 min

Breaking into a stranger’s home is a dangerous business, one that is better left undone. An alleged burglar in California learned that lesson in the hardest way and paid the…

View post

How These Defensive Gun Uses Could Land You In Prison

Reading Time: 1:1 min

There is a thin line when using your gun in self-defense between justified and unjustified homicide. I went to USCCA’s Proving Grounds, where they put me through realistic scenario-based training…

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>