2A News

Canada Prepares for Door-to-Door Gun Confiscation

Reading Time: 1:51 min

With the completely arbitrary drop-dead date of March 31 looming for Canada’s owners of banned firearms, officials are not even trying to hide the next step in the confiscation scheme.…

View post

Hawaii Defends Bizarre Gun Regulations Before Ninth Circuit

Reading Time: 1:59 min

It is not hyperbole to recognize the endgame for most radical anti-gunners. They want to burden the Second Amendment with every conceivable infringement enough to make the people throw up…

View post

Setback: Federal Judge Upholds Texas Carry Ban at Specific Venues

Reading Time: 1:55 min

A federal judge in Texas delivered a blow to Second Amendment advocates this week when he upheld the state’s restrictions on carrying firearms at bars, racetracks, and certain sports facilities.…

View post

Tennessee Bill Protecting Tenants’ Gun Rights Goes to Governor’s Desk

Reading Time: 1:55 min

A measure to protect the Second Amendment rights of Tennessee tenants from overreaching landlords cleared the state Legislature and awaits Gov. Bill Lee’s (R) expected signature. Renters face arbitrary restrictions…

View post

Tennessee Bill Protecting Tenants’ Gun Rights Goes to Governor’s Desk

Reading Time: 1:55 min

A measure to protect the Second Amendment rights of Tennessee tenants from overreaching landlords cleared the state Legislature and awaits Gov. Bill Lee’s (R) expected signature. Renters face arbitrary restrictions…

View post

Nuns’ Lawsuit Against Smith & Wesson Dismissed

Reading Time: 1:53 min

A federal judge on Tuesday once again shot down a lawsuit filed by nuns who bought up shares of Smith & Wesson before suing the company for selling AR-15s. 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>