2A News

Huntsville Man Fatally Shoots Intruder After Retreating Failed

Reading Time: 1:54 min

An Alabama man faced the frightening prospect Tuesday evening of having another person use force to enter their locked apartment and come after them.  And while the state has a…

View post

Constitutional Carry for NC Gun Owners Still Unresolved

Reading Time: 1:52 min

North Carolina’s Second Amendment supporters are back to kicking rocks while they wait for definitive action from their elected officials. Lawmakers again delayed a vote on finally recognizing constitutional carry…

View post

Delaware’s Permit to Purchase Law and Training Requirement Take Effect

Reading Time: 1:51 min

The erosion of constitutional freedoms will not always be announced from the rooftops and confirmed on the evening news. Sometimes it’s just the passing of a predetermined date that signals…

View post

Anti-2A Senator Spent $360k on Private Security in Hypocritical Action

Reading Time: 1:51 min

Political leaders who oppose gun rights are strangely reluctant to give up their private security and guard details. Apparently, they do not trust the ability of social workers to handle…

View post

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