Right to Carry

US Freezes Gun Exports in Blow to Firearms Industry

Reading Time: 1:43 min

Political leaders are prone to attempting to gloss over unpopular moves by announcing them late on Fridays or even over holidays. One such proclamation came down late last week regarding…

View post

Injunction Against Pistol Brace Rule Extended by Federal Judge

Reading Time: 1:36 min

U.S. District Court Judge Drew B. Tipton extended the current preliminary injunction against enforcement of the new pistol brace rule on Friday. The edict for the Bureau of Alcohol, Tobacco,…

View post

Off-Duty Federal Officer Shoots Alleged Carjacker in Washington DC

Reading Time: 1:43 min

A tragic situation unfolded in the nation’s capital Saturday night when an attempted carjacking resulted in the death of a 13-year-old. Washington, D.C. police were called to Penn Quarter in…

View post

NSSF Blasts New Final Rule Banning Traditional Ammunition and Fishing Tackle

Reading Time: 3:8 min

Despite appeals from sportsmen along with the National Shooting Sports Foundation (NSSF) and others, the U.S. Fish and Wildlife Service (USFWS) plowed ahead with its plan to enact a ban…

View post

Philadelphia Store Clerk Shoots Alleged Armed Robber Stuffing Pockets with Cash

Reading Time: 1:34 min

A store clerk in a corner store in Philadelphia came face-to-face with an armed robber late Wednesday night and lived to tell the tale. That’s because he had the wisdom…

View post

Virginia Firearm Regulations Weigh Heavily on Voters’ Minds

Reading Time: 1:30 min

With voters going to the polls in Virginia next month, several key issues will be determined. Prominent among them are concerns over the Second Amendment and where politicians stand on…

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>