2A News

NY Homeowner Fatally Shoots Alleged Intruder in Kitchen

Reading Time: 2:8 min

The names, dates, locations, and some specifics change. Still, the general scenario of bad guys choosing the wrong targets and often paying the ultimate price is a modern-day case of…

View post

FPC Proposes PLCAA Amendment While Rejecting SHOT Act

Reading Time: 1:60 min

Categorizing Sen. John Cornyn’s (R-TX) proposed Stopping Harmful and Outrageous Torts (SHOT) Act as “deeply flawed,” the Firearms Policy Coalition (FPC) instead offered its own solution to strengthen protections for…

View post

Congressional Anti-Gunners Demand End to ATF Reforms

Reading Time: 1:59 min

A smattering of congressional gun rights opponents is up in arms over the Bureau of Alcohol, Tobacco, Firearms, and Explosives’ (ATF) recent push to streamline its operations  Two notable Second…

View post

NY Homeowner Fatally Shoots Alleged Intruder in Kitchen

Reading Time: 2:8 min

The names, dates, locations, and some specifics change. Still, the general scenario of bad guys choosing the wrong targets and often paying the ultimate price is a modern-day case of…

View post

Injunction Against Va. AR-15 Ban Stands Through SCOTUS Decision

Reading Time: 2:3 min

Wednesday brought good news for Virginia’s sizable sporting community when the Washington County Circuit Court stayed proceedings in one lawsuit against the state’s gun control regime. That means that fundamental…

View post

Armed Good Samaritan May Have ‘Saved Lives’ in Idaho Shooting

Reading Time: 2:2 min

A tragic and apparently random shooting on Saturday at an In-N-Out Burger restaurant in Twin Falls, Idaho, might have been far worse without a good guy reportedly firing rounds from…

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>