2A News

2A Coalition Urges Pennsylvania High Court to Strike Down Carry Restrictions

Reading Time: 1:60 min

The Pennsylvania Supreme Court has an opportunity approaching to right a present wrong. In Commonwealth v. Williams, justices will decide if the state’s carry restrictions for young adults under 21…

View post

Delivery Driver Wields Firearm to Defend Against Alleged Road Rager

Reading Time: 1:53 min

Delivery drivers are as ubiquitous in 2026 as Blockbuster locations were in the 80s and 90s. Unfortunately, the nature of the business makes it highly likely that these gig workers…

View post

Gun Magazines Given Away in Protest of Pending Virginia Ban

Reading Time: 1:52 min

It was a welcome sight on Saturday when hundreds of Second Amendment supporters rallied at the Virginia State Capitol. Many of the citizens were armed, and videos of a particular…

View post

Virginia Lawmaker: Guns Are Unnecessary for Self-Defense

Reading Time: 1:58 min

Of all the takes one could have on the recent spate of violence in the U.S., a Virginia delegate certainly offered an interesting perspective. Garrett McGuire (D) used his bully…

View post

Rhode Island Lawmakers Propose Yet More Firearm Restrictions

Reading Time: 1:52 min

Rhode Island’s anti-gunners pushed proposals in recent days that not only erect new and unnecessary barriers between law-abiding citizens and their Second Amendment rights, but they could also automatically convert…

View post

NRA: Canada Spending $25K for Each Confiscated Firearm

Reading Time: 1:50 min

Canada’s gun owners have only days left before the March 31 deadline to declare prohibited firearms in their possession and ask the federal government for compensation as they hand over…

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>