2A News

Iowa Teen Sues Over Suspension for Wearing Second Amendment Shirt

Reading Time: 3:21 min

An Iowa teenager filed a federal lawsuit against her school district and high school civics teacher. The reason? She was suspended for exercising her First Amendment right to free speech…

View post

Biden Uses SOTU to Renew Call for More Gun Control

Reading Time: 3:15 min

When the president talks, people listen. That goes with the territory of being the most powerful person in the world.  So, when President Joe Biden used his State of the…

View post

US Majority Now Opposes So-Called ‘Assault Weapons’ Ban

Reading Time: 3:9 min

The majority of Americans are now lined up in opposition to federal and state attempts to prohibit so-called “assault weapons.” That’s the conclusion from the most recent ABC News/Washington Post…

View post

Gun Control Only Works to Control Law-Abiding Citizens

Reading Time: 3:21 min

Insanity has been defined as doing the same act over and over expecting to see a different result. That definition also applies to America’s anti-gun zealots, who follow each heinous…

View post

Maryland Lawmakers Fast-Track New Gun Control Bill

Reading Time: 3:7 min

The anti-gun lobby may sometimes speak in pleasant tones and frame their demands in friendly terms, but make no mistake about their ultimate goal. They are fully committed to nullifying…

View post

Fierce Resistance Mounts to ATF’s Pistol Brace Rule

Reading Time: 3:9 min

Before the ink was dry on the Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) new pistol brace rule Tuesday, Second Amendment advocates sprang into action. The highly controversial change…

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>