2A News

‘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

California’s Rabid Anti-2A Lobby Wants to Strip Gun Rights from Pot Smokers

Reading Time: 2:3 min

If the virulent anti-Second Amendment crowd is anything, it’s ironic. Take California. The Golden State rolls out the red carpet for drug users as cities become open-air opium dens and…

View post

Now it’s Canada’s Turn to Scapegoat the US For Its Crime Problem

Reading Time: 1:60 min

First, it was Mexico. The southern neighbor decided in recent years that its crippling dilemma with drug cartels and gang violence is the fault of the United States. Officials sued…

View post

Report: Black Gun Owners Seek Justice After Wrongful Arrests

Reading Time: 3:35 min

Gun rights opponents should recall that until modern times, U.S. gun laws tended to discriminate against certain classes of Americans based on race or other factors. These statutes are rightfully…

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>