2A News

Alleged Christmas Day Home Invasion Leads to Fatal Shooting

Reading Time: 1:58 min

A Michigan homeowner found himself in a hot mess on Christmas evening when an alleged armed intruder arrived with a firearm and an apparent vendetta. The holidays are a time…

View post

Congressional Candidate Blames 2A-Supporting States for Crime in New York

Reading Time: 1:57 min

A hallmark of the rabid anti-gun crowd is the willingness to blame criminal behavior on anyone and everyone—except the violent criminal. And the mere existence of the Second Amendment is…

View post

New Year Will Also Ring in New California ‘Ghost Gun’ Laws

Reading Time: 1:51 min

California is a prime example of what awaits gun owners if a state is dominated politically by anti-gunners. The Golden State is perpetually on the warpath to eradicate the right…

View post

‘Global’ Gun Control Outfit Supports Hawaii’s ‘Vampire Rule’

Reading Time: 2:2 min

Sometimes, when a defeat is so utterly thorough and convincing, the wounded party wisely decides that their time and talent are best utilized elsewhere. Other times, just the opposite occurs…

View post

‘Inconsistent’ DOJ Argues for Gun Rights but Against Pocket Knives

Reading Time: 2:6 min

Good, bad, or indifferent, consistency is a valuable trait when it comes to fundamental rights and the federal government’s approach to them. When it pertains to the latest edition of…

View post

Grand Jury Declines to Indict Father in Kentucky State Defensive Shooting

Reading Time: 2:3 min

A Kentucky State University father is in the clear today after a grand jury declined to indict him on a murder charge. The case stemmed from a fatal shooting in…

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>