2A News

Beshear Vetoes 2 Bills That Would Enhance Kentuckians’’ 2A Rights

Reading Time: 1:52 min

The Kentucky Legislature did its part when it sent two strong pro-Second Amendment bills to Gov. Andy Beshear’s (D) desk for his signature. That’s where the laudable effort hit a…

View post

Washington State Concealed Carry Licenses Plummet

Reading Time: 1:56 min

Citizens periodically vote in a broad array of elections, and these results are widely reported for all to see. But there’s another form of voting, a much more powerful statement,…

View post

FPC’s ‘Freedom Index’ Rates Only 2 States as ‘Perfect’ on 2A Rights

Reading Time: 1:51 min

The Firearms Policy Coalition (FPC) presented a fascinating report card to the nation last week. The Second Amendment organization’s inaugural Freedom Index ranked the 50 states on how much their…

View post

NSSF Blasts ‘Lax’ Prosecutors Who Let Illegal Straw Purchases Slide

Reading Time: 2:17 min

To hear anti-gunners tell it, the firearms industry is filled with raving lunatics who want to return the nation to the bloody Wild West era or possibly the Prohibition-fueled gangland…

View post

NC Man Fires on Suspect Who Just Broke into His Home

Reading Time: 1:59 min

When a burglar attempts to break into an occupied dwelling, they must somehow realize that they are risking their life. Whatever loot might be gained at the expense of another…

View post

US Military Personnel Now Permitted to Carry on Base

Reading Time: 1:53 min

A military base, at first glance, would be one of the safest locations a person could ask for. Thousands of highly trained personnel are ready for any threat, and outside…

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>