2A News

Tire Shop Customer Returns Fire After Alleged Attack

Reading Time: 2:2 min

Conducting business at a gas station that bumps up against a tire shop should not be a dangerous affair, but in Memphis in 2026, all bets are off. Last Tuesday…

View post

Tennessee Lawmakers Move to Strengthen Property Protection Rights

Reading Time: 1:56 min

Isn’t it telling how so many gun rights opponents openly and consistently fight against the ability to defend oneself, loved ones, and property? Last week, a pair of Tennessee lawmakers,…

View post

Court Grants Rehearing in Pivotal District of Columbia 2A Case

Reading Time: 3:30 min

The District of Columbia back in 2008 decided that its law-abiding citizens did not have the freedom to possess standard-capacity firearm magazines capable of holding more than 10 rounds of…

View post

Charlotte Couple Rescued by Ready Firearm When Intruder Struck

Reading Time: 2:2 min

Little is more chilling than the prospect of confronting a violent criminal in your own home in the middle of the night. For all the talk of hunting and sport…

View post

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