2A News

Kentucky Close to Approving Young Adult Concealed Carry

Reading Time: 1:51 min

A bill to establish concealed carry rights for young adults under 21 in Kentucky breezed through the Legislature and is headed to Gov. Andy Beshear’s (D) desk. And the tally…

View post

Illinois Lawmaker Wants to Mandate Microstamping Ammunition

Reading Time: 1:51 min

Leave it to the Land of Lincoln to concoct a gun control scheme rooted solely in virtue signaling and political grandstanding that does nothing to enhance public safety. Illinois officials…

View post

Armed Intended Victim Turns Tables on Alleged Chicago Attacker

Reading Time: 1:58 min

The middle of the afternoon should be a time, even in a major city like Chicago, when upstanding citizens can go about their business without fear of being accosted by…

View post

California Gives Up Defense of Gun Advertising Ban—to Pay Attorney Fees

Reading Time: 1:59 min

When California lawmakers brazenly decided that firearm advertising might somehow appeal to young Americans and must be banned, they fired a legal volley at the First, Second, Fifth, and Fourteenth…

View post

Victory: Expanded Injunction on Post Office Carry Ban

Reading Time: 1:55 min

With Second Amendment organizations fighting valiant battles nationwide to defend gun rights, it is important to recognize and congratulate successes against government forces armed with virtually unlimited taxpayer funds. Last…

View post

New York Ends Probes of Social Media for Gun Permit Applicants

Reading Time: 2:12 min

New York State’s 2022 Concealed Carry Improvement Act (CCIA) is as controversial as it is misnamed, and at least one part of the gun control infrastructure it established is on…

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>