Right to Carry

California Judge Rules Against Company Producing Machines to Create 3D Printable Guns

Reading Time: 2:25 min

A federal judge in San Diego sided with California in its lawsuit against a Texas company that manufactures machines to enable hobbyists to produce their own weapons at home.  With…

View post

Bill to Erase Texas State Fair Concealed Carry Ban Clears First Hurdle

Reading Time: 2:23 min

Of all the pro-Second Amendment states in the Union, many were shocked when a major Texas entity brought the hammer down on lawful concealed carry holders. The Texas State Fair…

View post

Florida Homeowner Uses Firearm to Defend Against Two Alleged Home Invaders

Reading Time: 2:23 min

The idea of a home invasion was something rarely thought of in decades past. There were the run-of-the-mill burglars, of course, but the horrifying breach of what should be a…

View post

DOJ Second Amendment Task Force Sends Strong Signal of Support for Gun Rights

Reading Time: 2:19 min

Gun rights advocates cautiously celebrated the recent announcement by Attorney General Pam Bondi of the creation of the Second Amendment Enforcement Task Force. After all, promises made and promises kept…

View post

Montana Hunter Uses Rifle to Save Himself From Charging Grizzly Bear

Reading Time: 2:23 min

A Montana man is thankful to be alive today after a frightening confrontation last week, and this time the incident did not involve a violent criminal bent on destruction. Instead,…

View post

Texas Lawmakers Act to Protect Citizens Involved in Self-Defense Incidents

Reading Time: 2:28 min

Law-abiding citizens use the Second Amendment every day in the U.S. to defend themselves, their loved ones, and their property from violent criminals. Deploying lawful force for protection should not…

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>