2A News

Fifth Circuit Rejects Stripping Gun Rights Forever from Non-Violent Felon

Reading Time: 1:55 min

The Fifth Circuit Court of Appeals just handed down a noteworthy decision for those who strayed from the straight and narrow at some point in their lives. To be clear,…

View post

GOA: Pennsylvania Lawmakers Sneaking More Gun Control into Session

Reading Time: 1:55 min

Sometimes the enemy charges through the front gate with trumpets blasting and a sound and fury that will never be mistaken for anything but a dire threat. Other times, however,…

View post

Gov. Abbott: Texans May Carry Legal Firearms at Protests

Reading Time: 2:5 min

The national discussion over whether it is advisable to bring a firearm to a protest heated up on Thursday. Texas Gov. Greg Abbott (R), a stalwart defender of Second Amendment…

View post

Hawaii Pushes More Ridiculous 2A Infringements Ahead of Likely Defeat

Reading Time: 1:59 min

When defeat is all but certain, the best course of action may be to assess what brought things to this point and determine how to avoid reaching the same outcome…

View post

Texas Woman Took Ex-Boyfriend’s Firearm and Shot Him

Reading Time: 1:59 min

There are far too many instances in which ex-spouses and romantic partners somehow fail to grasp that the relationship is simply over and that they need to ride off into…

View post

One Killed as St. Petersburg Men Defend Themselves from Alleged Attackers

Reading Time: 1:56 min

A suspect is dead and another is critically injured today in what authorities describe as a self-defense incident in St. Petersburg on Friday evening.  The frightening encounter exploded at about…

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>