2A News

Texas Man Uses Firearm to Stop Alleged Attempt to Run Him Down

Reading Time: 1:58 min

As is glaringly apparent from the news lately, guns are hardly the only lethal weapons available to violent criminals. Everything from knives to sticks and rocks is regularly wielded against…

View post

California’s Gun Barrel and Hobby Weapon Restrictions Take Effect

Reading Time: 1:54 min

Make no mistake: the blueprint established by California’s anti-Second Amendment regime will be imposed on the entire nation if its supporters prevail.  Thankfully, at least for now, the damage wrought…

View post

Alleged Christmas Day Home Invasion Leads to Fatal Shooting

Reading Time: 1:58 min

A Michigan homeowner found himself in a hot mess on Christmas evening when an alleged armed intruder arrived with a firearm and an apparent vendetta. The holidays are a time…

View post

Ridiculous New Gun Show Restrictions Take Effect in Colorado

Reading Time: 1:59 min

In lieu of ripping the Second Amendment to shreds, which anti-gun lawmakers have not been able to do, they are content for now with legislating the right to keep and…

View post

Alleged Christmas Day Home Invasion Leads to Fatal Shooting

Reading Time: 1:58 min

A Michigan homeowner found himself in a hot mess on Christmas evening when an alleged armed intruder arrived with a firearm and an apparent vendetta. The holidays are a time…

View post

Congressional Candidate Blames 2A-Supporting States for Crime in New York

Reading Time: 1:57 min

A hallmark of the rabid anti-gun crowd is the willingness to blame criminal behavior on anyone and everyone—except the violent criminal. And the mere existence of the Second Amendment is…

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>