Noir

NOIR | Ep.18: Courtesy on the Range & in your Car, Pro Boxer Gary Russell, & I My Ass Kicked

Reading Time: 0:13 min

In this episode of NOIR, LaSorte gets on his soap box about having some courtesy while in your car and on the range. We do some shooting with professional boxer…

View post

ASK NOIR | Ep.17: I Hold My Rifle Wrong, My Supporters & When I Got My Hat

Reading Time: 0:15 min

On this weeks episode of NOIR, I learn that someone people can’t stomach the way I hold my rifle. Also, I finally give up the dirt on where I got…

View post

Ask NOIR |Ep.7: Tactical THOTS, Definition of Hero & I Hate on LaSorte’s Shooting Skills

Reading Time: 0:19 min

On this Episode of Ask NOIR, I give my definition of a Hero, I expose a Tactical Male THOT, and I get on my soap box about LaSorte’s shooting skills.…

View post

NRA Freestyle | NOIR Guest Challenge Promo

Reading Time: 0:16 min

Travis Haley, Rob Pincus, Dom Rasso, Gary Russlle Jr., Edgar Jones, John, Wayne Walding, and Andrew Kline each ran the demanding 14-stage NRA Freestyle course designed to put their athleticism, firearms…

View post

NOIR|Ep.14: “Born on The Fourth Of July”

Reading Time: 0:18 min

On this weeks episode, LaSorte and I spend some time with Green Beret John Wayne Walding. John Lost his leg during a six-hour firefight in Afghanistan and went on to…

View post

Ask NOIR| Ep.5: Does The Gun Communities Fascination w/ Zombie Hurt Our Image?

Reading Time: 0:12 min

On this episode of ASK NOIR, I address the impact that the Zombie craze may or may not have on the image of the gun community. I also answer your…

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>