Right to Carry

Senate Proposal Would Impose State ‘Red Flag’ Laws Onto Military

Reading Time: 3:22 min

Could the U.S. military have controversial state-level “red flag” laws imposed on it by federal statute? That’s the goal of a new proposal from a bipartisan pair of senators intent…

View post

Minnesota’s Age-Based Carry Restrictions Shot Down by Appeals Court

Reading Time: 3:31 min

Gun grabbers know that the Constitution stands in the way of their ultimate goal — to terminate the right to keep and bear arms. Therefore, they nibble around the edges…

View post

Ohio Homeowner Uses Firearm to Stop Burglary — of Firearms

Reading Time: 1:54 min

No one ever claimed that criminals are the brightest lot, but they are inherently dangerous and must be treated as a lethal threat. After a successful heist, a group is…

View post

Massachusetts Quietly Suspends Egregious New Firearm Training Requirements

Reading Time: 1:56 min

In Massachusetts’ mad dash to be at the forefront of controversial gun control laws, the state over the summer instituted new requirements for firearms training that were merely meant to…

View post

Nevada Man Uses Deadly Force to Defend Against Armed Robbery

Reading Time: 1:54 min

To hear anti-gun forces tell it, firearms only cause destruction and mayhem. They are never called upon when a violent criminal threatens an innocent person’s life and there is no…

View post

Michigan Prosecutors Rule Detroit Lions Tailgate Shooting Was Self-Defense

Reading Time: 1:53 min

The tailgate party near Ford Field in Detroit was to celebrate the resurgent Lions, but an aggressive act led to a shooting that is now ruled as self-defense. The September…

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>