2A News

Attorney Blasts Hawaii’s Use of Black Codes to Defend ‘Vampire Rule’

Reading Time: 2:20 min

The U.S. Supreme Court last week eviscerated Hawaii’s so-called “vampire rule” that required private property owners to grant permission to lawful gun owners before they were allowed on the premises.…

View post

Virginia Leaders Openly Support Destruction of Firearm Industry

Reading Time: 3:59 min

For most Americans, July’s arrival means preparing to celebrate the country’s independence and bracing for the truly hot summer season. In Virginia this year, the first day of the month…

View post

Anti-Gunners Horrified That ‘Vampire Rule’ is Dead

Reading Time: 2:5 min

The U.S. Supreme Court on Thursday in Wolford v. Lopez returned sanity to Hawaii’s gun control apparatus by emphatically burying the so-called “vampire rule.” The 6-3 majority struck down the…

View post

Injunction Issued Against Virginia’s Pending ‘Assault Firearms’ Ban

Reading Time: 2:0 min

On the same day that the U.S. Supreme Court issued a key ruling protecting gun rights from Hawaii lawmakers, their Virginia colleagues suffered their own setback at the hands of…

View post

Victory! Supreme Court Rejects Hawaii’s ‘Vampire Rule, Spirit of Aloha’

Reading Time: 4:5 min

The U.S. Supreme Court on Thursday handed a resounding victory to law-abiding gun owners and everyone who believes in the Constitution and the rule of law. In a vitally important…

View post

Trump Endorses Nationwide Right-to-Carry Legislation

Reading Time: 1:55 min

President Donald Trump (R) surprised the Second Amendment community on Tuesday by announcing to a Pennsylvania audience that the White House is “working” on legislation to expand constitutional carry rights…

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>