Law

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

Guns in the Parking Lot: Bringing them to the Workplace

Reading Time: 0:30 min

Some 22 states have passed laws that limit property owners’ ability to ban firearms in vehicles in parking areas. Under the Bring Your Gun to Work Laws employers can only…

View post

Jay Carney (Obama Spokesman): Commenting on The shooting at the Washington Navy Yard

Reading Time: 0:15 min

 the president is implementing executive actions and reiterated his commitment to strengthening gun laws, including expanding background checks to sales online and at gun shows. The president supports, as do an…

View post

Handgun Safety Recalls

Reading Time: 0:30 min

Another day another handgun safety recall. They say celebrity deaths always happen in threes. I am starting to think the same can be said about handgun recalls. First the Smith…

View post

Texas: Pro-Second Amendment Law Changes to Take Effect Today

Reading Time: 1:25 min

This is great and all and I applaud Texas for instituting laws in favor of gun ownership, especially, during a time where creating anti-gun laws means  you get to be…

View post

Gun Violence – Is this the #NewSchoolUniform (Fail)

Reading Time: 0:39 min

It’s official, Moms Demand Action is the new PETA. Who thought this was a good idea? There were a lot of very high people involved in the making of this…

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>