2A News

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

Tulsa Homeowner Fires Single Shot, Ends Violent Threat

Reading Time: 2:6 min

A seemingly ordinary Wednesday night in a suburban Tulsa neighborhood exploded in violence at around midnight. The alleged target first retreated, then wielded a baseball bat when the suspect followed…

View post

Report: 2026 Homicides Headed Toward Historic Low

Reading Time: 2:5 min

Anti-gunners love to spout that the U.S. has substantially more guns than people and use this as a bludgeon against the right to keep and bear arms. However, there is…

View post

NRA: ATF Proposed Rule on Transporting Firearms Needs Clarification

Reading Time: 2:8 min

The National Rifle Association (NRA) is the nation’s oldest and largest Second Amendment advocacy group, and the lion’s share of its mission is to ensure that laws and regulations do…

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>