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

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

Maryland County’s Radical Anti-2A Stance Draws Warning and Lawsuit

Reading Time: 3:23 min

On July 21, the Montgomery County Council rolled out a gun control package that is as ridiculous as it is unconstitutional, and it went into effect last week. Opposition sprang…

View post

St. Louis Suspect Reportedly Targeted Wrong Female Clerk

Reading Time: 1:55 min

Convenience stores, unfortunately, are convenient targets for violent criminals. Employment in these locations comes with an elevated risk level, particularly in crime-ridden cities such as St. Louis, and being prepared…

View post

Johnson Signs Order to Hold Weapons Industry ‘Accountable’

Reading Time: 1:53 min

Proving yet again that anti-gunners knowingly misplace blame on inanimate objects and away from violent criminals, Chicago authorities now seek to punish firearm industry members whom they believe are responsible…

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>