2A News

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

California Fires Back at DOJ Over Glock Ban Lawsuit

Reading Time: 2:5 min

To be fair, no one expected California’s entrenched gun rights suppression apparatus to throw in the towel and admit they were wrong. They were always going to fight the Department…

View post

Alaska Man Returns Fire and Chases Off Alleged Copper Thieves

Reading Time: 1:58 min

To paraphrase a familiar saying, when seconds count, help is usually minutes away. Now, imagine how true this is for those who live in Alaska, amid vast swaths of remote…

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>