Right to Carry

Georgia House Approves Upholding Preemption Law to Block Savannah’s Gun Control

Reading Time: 2:27 min

Georgia leaders are stepping up to stop a city’s attempt to restrict Second Amendment rights despite a clear state law prohibiting such actions.  The Peach State is one of many…

View post

Credit Card Companies May Now Track New York Ammunition Purchasers

Reading Time: 2:22 min

Even as several states move to protect their citizens’ Second Amendment rights and block the tracking of firearm and ammunition purchases, some are headed in the opposite direction. New York…

View post

Bill Reintroduced to Repeal Federal Transfer Tax on Short-Barreled Rifles

Reading Time: 2:22 min

If a new congressional action is successful, the federal excise tax levied when certain firearms governed by the National Firearms Act of 1934 are purchased will no longer apply. Sen.…

View post

Armed Citizen Shoots Suspect Allegedly Pilfering Houston Storage Unit

Reading Time: 2:21 min

Situations that call for armed action are rarely known beforehand. The well-established pattern is for upstanding Americans to be going about their day-to-day business when suddenly a criminal interrupts their…

View post

DOJ to Investigate Los Angeles Sheriff’s Department Over Possible Second Amendment Abuses

Reading Time: 2:30 min

In previous years, the federal government could be counted on to bring the hammer down on Second Amendment rights. Critics charged that agencies such as the Bureau of Alcohol, Tobacco,…

View post

NSSF: March Gun Sales Lowest in Five Years

Reading Time: 2:20 min

U.S. gun sales dove again in March to levels unseen since before the 2020 pandemic, but there is also good news from the latest industry statistics. The National Shooting Sports…

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>