2A News

NYC Senior Citizen Sentenced to Four Years Over ‘Draconian’ Gun Laws

Reading Time: 2:14 min

New York City tops current headlines over political results that some considered controversial, but for gun rights, upheaval in the Big Apple is hardly a recent phenomenon. For decades, law-abiding…

View post

Elderly Florida Man Shoots Suspect Who Ordered Him to Gather Valuables

Reading Time: 2:1 min

It takes a special kind of bad guy to target the elderly, but that, unfortunately, is the world we live in. And in Florida, there are many senior citizens to…

View post

Atlanta Man Wields Firearm to Defend Against Two Would-Be Robbers

Reading Time: 1:50 min

Between gas stations, ATMs, and car washes, there are plenty of vulnerable spots where ordinary Americans are subject to being targeted by violent criminals. Increasingly, the targets are fighting back.…

View post

Trump Nominates Robert Cekada to Lead Revamped ATF

Reading Time: 3:22 min

Expect lively confirmation hearings coming soon after President Donald Trump (R) this week formally nominated current ATF Deputy Director Robert Cekada to run the Bureau of Alcohol, Tobacco, Firearms, and…

View post

House Proposal Would Partially Reverse ‘Bipartisan Safer Communities Act’

Reading Time: 2:1 min

There was much to inflame Second Amendment advocates in recent years, but little rankled more than the so-called Bipartisan Safer Communities Act (BSCA). It “earned” the bipartisan label only because…

View post

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
<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>