Gun Review

My Top 5 Concealed Carry Gun Rotation

Reading Time: 4:45 min

When it comes to my concealed carry guns I practice tactical polyamory. Essentially, I don’t just carry one gun, I have a rotation of guns I carry based on what…

View post

First Road Trip In My GT3 To Pickup & Shoot My First 2011 Handgun At Their Factory

Reading Time: 0:41 min

I know enough gun owners to know that 90% of gun owners are walking around with an undiagnosed mental illness that I like to call Tactical Instant Gratificationitis. Tactical Instant…

View post

If Rolex Made A Rifle – The Swiss SG551P First Mag

Reading Time: 0:33 min

I fell in love with the Sg551 the first time I saw it. It was on the wall of a gun store in Houston, Texas, over 10 years ago. I…

View post

Springfield Hellcat Pro Review – What’s So PRO About It?

Reading Time: 5:44 min

Allow me to introduce the Hellcat Pro. I have a Mac book pro, A Mac Pro and I wrote the script to this video on my iPad Pro, and to…

View post

Glock 43 Review: Late To The Party ?

Reading Time: 0:30 min

This video should have  been done a month ago, but a combination of April showers, scheduling conflicts, my job and working on Season 2 of NOIR delayed this video longer…

View post

AIMPOINT CARBINE OPTIC: YOUR NEW “BUDGET” OPTION

Reading Time: 0:50 min

When it comes to red dot optics, Aimpoint is at the top of the list. Unfortunately, when it comes to red dot prices, they’re right up there again. There’s no point…

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>