2A News

Congressional Push to Eliminate Outdated NFA Grows Stronger

Reading Time: 1:50 min

An impressive roster of Second Amendment supporters in the U.S. House recently signed a letter to U.S. Attorney General Pam Bondi. Their goal? The nearly two dozen representatives asked the…

View post

NC Homeowner Defends Family, Shoots Home Invasion Suspect

Reading Time: 1:52 min

A Raleigh resident got the fright of a lifetime late Tuesday night when a suspect allegedly kicked in his door on the southeast side of the city. Tim Johnson was…

View post

GOA Battles Washington Over District Court’s Gag Order

Reading Time: 1:57 min

One of the bedrocks of First Amendment rights is the ability to communicate freely without prior restraint. The legal threshold for justifying telling Americans what they can and cannot say…

View post

Michigan Man Faces Manslaughter Charge in Shooting of Alleged Intruder

Reading Time: 2:8 min

When does armed self-defense go too far? If Oakland County Prosecutor Karen D. McDonald gets her way, 24-year-old Dayton Knapton will spend years of his life behind bars for firing…

View post

Alleged Jewelry Store Robbers Run for Their Lives When Owner Opens Fire

Reading Time: 1:51 min

Apparently thinking there was safety and success in numbers, a group of five masked robbers charged into a California jewelry store late Thursday afternoon. The headline of this potentially lethal…

View post

SCOTUS To Decide Whether to Hear Case Over California’s Standard Capacity Magazine Ban

Reading Time: 1:53 min

The long and winding road of the ferocious battle over California’s ban on standard capacity magazines is finally before the U.S. Supreme Court. On Friday, November 21, justices are scheduled…

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>