News

2014 Magpul Calendar Shoot: High Fashion Meets the Gun World

Reading Time: 1:36 min

Magpul just released this video for their 2014 Calendar. The Calendar is definitely not your typical bikini model with a gun type of deal and I can get down with…

View post

Engineers Build The World’s First Real 3D-Printed Gun

Reading Time: 0:48 min

The Liberator, for all the hoopla, was not really a gun. This 3D-printed firearm, on the other hand, is a gun. It is a copy of a 1911 made using…

View post

Woman dies after accidentally shooting herself in the head at Missouri gun range

Reading Time: 0:40 min

A South American woman has died in an apparent accidental shooting at a northeast Missouri gun range. The Ralls County Sheriff’s Department says the shooting happened Sunday at the Salt…

View post

Army veteran banned from daughter’s school after posting picture of weapons permit

Reading Time: 1:2 min

When I analogized being a gun owner to the gay rights movement, some people were like how dare I compare the two. This woman is being ostracized from her daughters…

View post

Sen Feinstein crying about “Assault Rifles”, again

Reading Time: 0:27 min

It humors me how she tries to bolster her argument by pointing out that the M&P on on the M&P-15 means Military and Police. Should we want substandard “civilian” versions?…

View post

Deputies Kill 13 Year Old Who Was Carrying Fake Rifle

Reading Time: 0:50 min

Sonoma County sheriff’s deputies shot and killed a 13-year-old boy Tuesday who was carrying what turned out to be a fake rifle in Santa Rosa, authorities and acquaintances of the…

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>