Right to Carry

California Law Against Non-Residents Exercising Second Amendment Rights Opposed

Reading Time: 2:15 min

A lawsuit filed last week charged that California’s ban on non-residents carrying firearms violates the Constitution. The filing came on behalf of residents of Idaho, New Mexico and Pennsylvania who…

View post

U.S. Gun Owners Possess More Than 710,000,000 So-Called ‘High-Capacity’ Magazines

Reading Time: 2:5 min

Anti-Second Amendment lawmakers who target detachable magazines are going after the most overwhelmingly common variety. That’s the result of a report from the National Shooting Sports Foundation (NSSF), the weapons…

View post

Senator Introduces Bill to Protect Gun Purchasers’ Privacy

Reading Time: 2:18 min

The push by states favoring gun control to essentially create a national registry of weapons purchased using credit cards may hit a brick wall. That is due to S 4075,…

View post

Gun Control Forces Push to Make New Orleans’ French Quarter Gun-Free

Reading Time: 2:10 min

Louisiana gun owners as of July 1 will be able to more freely exercise their Second Amendment rights due to the state’s establishment of constitutional carry. But predictably, gun control…

View post

Eight Armed Robbery Suspects Flee Jewelry Store When Owner Produces Shotgun

Reading Time: 2:7 min

Oakland is in the grip of a retail crime wave that is forcing many longtime businesses to shutter and move elsewhere. One legacy store owner took matters into his own…

View post

Elderly Mother Shoots Masked Intruder to Save Disabled Son

Reading Time: 3:55 min

Tales of courage and heroism fascinate the public, and they are often recounted in books and on the silver screen. But it’s the extraordinary feats of decidedly ordinary people in…

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>