2A News

Controversial Delaware Bill Targeting Gun Shop Owners Advances

Reading Time: 1:58 min

A brazenly unconstitutional proposal picked up steam last week in Delaware when the Senate approved SB 300. The bill advances to the House for further review and undoubtedly more controversy.…

View post

Wild Attack on Family Stopped by Armed 18-Year-Old

Reading Time: 2:3 min

A Houston family of four endured an inexplicable shock just before sunrise on Thursday. An unidentified cousin of the mother, for reasons undetermined, allegedly started stabbing the children inside, but…

View post

Lawsuit Against Weapons Industry Ends After 26 Years of Fighting

Reading Time: 2:1 min

It is difficult to comprehend how a baseless lawsuit against the Second Amendment-protected firearms industry could meander through the court system for 26 years, but here we are. At long…

View post

Lawmaker Wants to Block Proposal to Allow Mailing of Handguns

Reading Time: 1:57 min

Even as the White House proposed permitting handguns to be mailed through the Postal Service, the same as rifles and shotguns, a Michigan lawmaker seeks to head off the rule…

View post

Bill Would Eliminate NFA Taxes on 2A-Related Devices

Reading Time: 1:51 min

The controversial National Firearms Act of 1934 (NFA) is already crumbling, and a Colorado congresswoman wants to put another nail in its coffin. Rep. Lauren Boebert (R-CO) on Wednesday introduced…

View post

Florida AG Warns Port St. Lucie HOA Over Its Gun Ban

Reading Time: 1:58 min

It’s not always overzealous and ill-informed politicians and officials who are not well-versed on the Second Amendment. A controversy exploded in Florida when a homeowner’s association jolted residents with new…

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>