2A News

ATF Proposes Streamlining Process for NFA Items

Reading Time: 1:52 min

The Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) took another step late last week to reduce some of the onerous burdens imposed on law-abiding gun owners seeking to purchase…

View post

Armed Ft. Worth Man Saves Woman From Machete Attack

Reading Time: 2:12 min

The Sunday before Independence Day proved costly for a suspect in a Texas machete attack on a woman he allegedly dragged down a Fort Worth Street. Unfortunately for him, he…

View post

Report: Experts Believe SCOTUS Will Rule Against AR-15 Bans

Reading Time: 2:9 min

Despite what partisans on both sides of the political aisle claim, anticipating what the current U.S. Supreme Court justices will decide is not easy. This high court at times upheld…

View post

New Gun Control Group Wants to ‘Shame’ Unrelated Businesses

Reading Time: 2:9 min

Like bad pennies that are no longer made, anti-gunners consistently pop up with this or that scheme to infringe on the Second Amendment. Some efforts are more serious than others,…

View post

Huntsville Resident Shoots Suspected Intruder in Dead of Night

Reading Time: 2:11 min

As the rest of the country prepared to celebrate the nation’s 250th birthday last week, a man in Huntsville apparently decided that it was in his best interests to terrorize…

View post

Gun Rights Groups Sue Colorado and Denver Officials Over Arbitrary Bans

Reading Time: 1:57 min

Colorado and Denver officials already face a U.S. Department of Justice (DOJ) challenge to their anti-Second Amendment laws.  Denver prohibits so-called “assault weapons” while the state bans standard-capacity gun magazines.…

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>