2A News

Radical 2A Opponents Target Ruger After Glock Announcement

Reading Time: 1:59 min

Gun control radicals score the occasional legal victory despite the best efforts of Second Amendment organizations—and the Constitution. When this unfortunate scenario materializes, these anti-gunners seek to build on their…

View post

NRA: DOJ Slashes Millions in Grants for Second Amendment Opponents

Reading Time: 1:53 min

Reasonable people would agree that using government (taxpayer) funds to prop up organizations opposed to constitutional rights is sheer folly. Unfortunately, Second Amendment supporters had to deal with this travesty…

View post

Off-Duty Texas Deputy with Child in Vehicle Shoots and Kills Alleged Carjacker

Reading Time: 1:53 min

It is a risky thing, being a violent criminal and choosing your target in 2025. Tens of millions of Americans are now legally armed, and justifiable self-defense instances are on…

View post

Halloween Night Alleged Intruder Shot and Killed in Oklahoma

Reading Time: 1:51 min

Millions set aside the last day of October for costume-wearing revelry and trick-or-treating by the little and not-so-little ones with family and neighbors.  Holidays should not be prime time for…

View post

Savannah Woman Utilizes Firearm to Defend Herself from Alleged Intruder

Reading Time: 1:56 min

It’s amusing to listen to Second Amendment critics rail against ever-increasing defensive gun uses. Any reasonable person would celebrate innocent civilians protecting themselves, but anti-gunners don’t view the world that…

View post

Mississippi Home Invasion Suspect Shot Dead by Resident

Reading Time: 1:55 min

It is foolhardy to think that in 2025 it is a good idea to force your way into someone’s home and that you will not face a lethal response. As…

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>