2A News

Scheme to Ban Hunting and Fishing in Oregon Advances

Reading Time: 2:5 min

An effort to effectively ban hunting, fishing, and even pest control in Oregon cleared a significant hurdle this week and is increasingly likely to appear on the November ballot.  Radicals…

View post

Maryland Joins California in Banning Sale of Glock Handguns

Reading Time: 2:3 min

Following California’s lead on fighting violent crime and gun control is a risky proposition, as the Golden State has perhaps the worst track record on both in the nation. Maryland…

View post

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
<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>