2A News

Virginia AG Shows Shocking Contempt for Rule of Law

Reading Time: 2:14 min

With Virginia’s blatantly unconstitutional firearm bans in limbo and a Supreme Court ruling on such atrocities on the horizon, it is a good time for the adults in the room…

View post

74-Year-Old NC Man Shoots Suspect Entering Through Window

Reading Time: 1:58 min

The hero of this incident, who likely saved himself from serious injury or worse, is exactly who the framers had in mind when they included the Second Amendment in the…

View post

Federal Court Upholds Age-Based Handgun Ban

Reading Time: 1:56 min

U.S. District Judge Sarala Nagala on Monday rejected the lawsuit brought by the Second Amendment Foundation (SAF) and the Connecticut Citizens Defense League (CCDL) against the state’s ban on adults…

View post

Upstart Political Cabal Openly Seeks Repeal of Second Amendment

Reading Time: 2:21 min

While the American political scene features many prominent players who oppose gun rights to one degree or another, most do not extend their opposition to supporting changes to the Constitution…

View post

Oregon Initiative to Ban Hunting and Fishing Fails–This Time

Reading Time: 1:60 min

Don’t look now, but there are literally dozens of rural Illinois counties passing referendums to secede from the state that is wholly dominated by Chicago politics. Oregon could be next.…

View post

Sheriff: Idaho’s ‘Castle Doctrine’ Protects Homeowner 

Reading Time: 1:59 min

An apparently complex domestic situation erupted in violence Sunday evening in Idaho, and the fallout left 50-year-old Jason Leroy Sparks dead. He was the ex-husband of Ashley Sparks, and the…

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>