2A News

DOJ’s Dhillon Warns California Leaders Over Glock Ban

Reading Time: 3:29 min

With the state’s controversial new “Glock ban” measure set to take effect on July 1, California officials on Wednesday received a shot across the bow that they must have expected.…

View post

ATF Announces Updated Guidelines on Guns and Marijuana ‘Soon’

Reading Time: 2:4 min

The U.S. Supreme Court last week provided gun-owning Americans with a much-needed reversal when it ruled the federal law banning marijuana users from firearm ownership and possession violates Second Amendment…

View post

Texas Woman Shoots Ex When Pepper Spray Failed

Reading Time: 2:7 min

Non-lethal defensive weapons are a niche market in the U.S., and these products are part of millions of Americans’ self-defense plans. They include everything from pocket alarms and strobe lights…

View post

Report: DOJ Subpoenas Names of ‘Debanked’ Gun Businesses 

Reading Time: 2:0 min

Imagine being a law-abiding owner of a gun shop and suddenly finding yourself unable to obtain critical financial services. Then imagine the companies telling you “No” are not considering your…

View post

Supreme Court Justices Call for Overturning Critical Bruen Ruling

Reading Time: 2:2 min

Last week, the Supreme Court unanimously ruled in United States v. Hemani that marijuana use does not automatically nullify the user’s Second Amendment rights. However, along with Justice Sonya Sotomayor,…

View post

Again? Another HOA Oversteps in Banning Firearms

Reading Time: 2:9 min

Here we go again. Less than three weeks after Florida’s attorney general crushed the anti-Second Amendment policies a homeowner’s association attempted to enforce, another popped up this week with a…

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>