2A News

Arkansas Officials Seek Answers to Deadly ATF Raid

Reading Time: 2:9 min

A bipartisan group of 30 Arkansas state senators demanded an investigation into the tragically botched raid two years ago by the Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF) that…

View post

Anti-Gunners Furious Over Gun Policy Shift

Reading Time: 1:54 min

No sooner than the ink dried on Wednesday’s welcome Department of Justice (DOJ) announcements rolling back gun rights infringements did the anti-Second Amendment lobby recoil in horror. Long-overdue adjustments to…

View post

Houston Social Media Hookup Ends in Attempted Robbery

Reading Time: 2:1 min

Impersonal connections are all too common in the age of social media, and these meetups with total strangers carry an element of danger that should not be ignored. A Texas…

View post

Senate Confirms Robert Cekada as New ATF Director

Reading Time: 1:60 min

There’s a new sheriff in town at the Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF), and it’s a familiar face. On Wednesday, the U.S. Senate confirmed Robert Cekada to…

View post

DOJ Announces Rollback of Several Biden-Era Firearm Regulations

Reading Time: 3:28 min

Acting Attorney General Todd Blanche announced on Wednesday a “landmark rulemaking package” designed to neuter multiple Biden-era firearm regulations. First reported by Breitbart News, the proclamation is a welcome step…

View post

Washington Resident Fires on Armed Home Invasion Suspects

Reading Time: 1:55 min

A Washington state family is fortunate today that one of its members, a 24-year-old male, had a ready firearm to respond to multiple suspects allegedly forcing their way into the…

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>