Right to Carry

Inclusive Trap Shooting Exploding in Popularity at US High Schools

Reading Time: 3:23 min

There is a harsh truth about traditions, no matter how time-honored and cherished they may be. They could be centuries old and the stuff that family histories and even legends…

View post

NRA Lauds Court’s Rejection of ‘Draconian’ Maryland Gun Law

Reading Time: 1:33 min

The National Rifle Association (NRA) is celebrating a “significant victory” for gun rights in Maryland as a federal court on Tuesday struck down an oppressive state law.  The Fourth Circuit…

View post

Suspect Killed by Armed Homeowner Just Bailed Out the Day Before

Reading Time: 1:39 min

According to authorities in Port Orange, Florida, a man who was just released on bail the day before was shot and killed attempting to climb through a bedroom window. He…

View post

Michigan Rams Through New Gun Restrictions for Some Misdemeanor Convictions

Reading Time: 3:16 min

Michigan gun owners face a new wave of state restrictions on gun rights, and some of them are now expanded to cover non-violent misdemeanors. Proponents sold the package, signed into…

View post

Oregon’s Repressive Anti-Gun Measure Ruled Unconstitutional

Reading Time: 3:8 min

It was 2022 when Oregon voters barely passed an anti-Second Amendment measure that severely curtailed gun rights in the state. The contentious proposal drew support from a few urban areas,…

View post

US Gun Ownership Reaches Highest Level in History

Reading Time: 3:2 min

American gun ownership is at a record high as more than half of U.S. voters live in a household with a firearm. This word came Tuesday from a nationwide NBC…

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>