Gear

TAURUS FIRST 24 KIT

Reading Time: 1:3 min

I was browsing one of my favorite sites UNCRATE and came across the Taurus First 24 Kit.  I rarely find gun stuff on UNCRATE so it was cool to see…

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

Lionheart Industries LH9 MK II Full Review

Reading Time: 0:5 min

If you missed the review (preview)  video of this gun, here is the full review.

View post

The Gun Box: Finally, Gun Storage for the Urbanite.

Reading Time: 0:58 min

I’ll be the first to say it, the GunVault Brand of gun vaults, have the the aesthetic appeal of Tyler Perry in a dress (Oh, wait). The GunVault screams gun! So,…

View post

Raven Concealment’s VanGaurd 2.

Reading Time: 1:32 min

If you wear skinny Jeans (There’s a huge difference between skinny jeans and straight leg. lol) and carry a gun, you should take a look at the VanGaurd 2 from…

View post

Mission First Tactical Introduces the Battlelink™ Minimalist Stock

Reading Time: 0:45 min

This stock looks tactical as hell. I haven’t determined if that’s a good or bad thing for me. I tend to be a minimalist when it comes to aesthetics, but…

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>