2A News

Appeals Court: Machine Guns Not Protected by Second Amendment

Reading Time: 1:52 min

Machine guns are dangerous and unusual firearms, according to the U.S. Court of Appeals for the Eleventh Circuit.  Basing their decision largely on the Supreme Court’s Heller ruling, the bench…

View post

Report: Jewish Group Turns to NRA Amid Rising Threats

Reading Time: 1:59 min

In a perfect world, a person or group’s politics and religion should have no bearing on their safety as they move through modern society. But we live in an imperfect…

View post

Anti-2A Crusaders Propose Taking Virginia’s Gun Control Regime Nationwide

Reading Time: 1:54 min

The frequency with which anti-gun stalwarts claim to “support the Second Amendment” would be high comedy if it were not so serious. New Virginia Gov. Abigail Spanberger (D) uttered those…

View post

GOA Demands Investigation Into ‘Alarming Breaches’ of Member’s Privacy

Reading Time: 1:58 min

The Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) is the federal law enforcement agency charged with enforcing laws related to, among other things, constitutionally protected Second Amendment activities. Unfortunately…

View post

Texas Homeowner Shoots Suspect Who Allegedly Shattered Door Glass

Reading Time: 1:53 min

Much is being said currently about the sad state of affairs where violent criminals escape punishment with barely a slap on the wrist. Many call for harsher sentencing to combat…

View post

RI Anti-Gunners Push Bill That Would Lead to Confiscation

Reading Time: 1:56 min

Last June, Rhode Island Gov. Dan McKee (D) signed the “State Assault Weapons Ban Act” into law. Despite the obvious constitutional objections by Second Amendment supporters, lawmakers shamelessly promised that…

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>