2A News

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

Report: Minneapolis Firearm Instructors See Massive Surge in Interest

Reading Time: 2:7 min

Fundamental rights are often taken for granted, especially during times of peace and prosperity when it appears that this state of being will last forever. Recent unrest in Minnesota was…

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>