Right to Carry

Alleged Trespasser Shot by Texas Homeowner

Reading Time: 2:27 min

An armed Corpus Christi homeowner had a harrowing encounter with an alleged intruder Thursday morning, but thanks to the ready firearm the incident has a happy ending. The initial call…

View post

NSSF Applauds Proposal to Safeguard National Tracing Center Data

Reading Time: 2:22 min

The National Shooting Sports Foundation (NSSF) strongly endorsed a congressional proposal to protect firearm trace data. The Law Enforcement Protection and Privacy Act, sponsored by Rep. Clay Higgins (R-LA), will…

View post

Louisville Road Rager Shot After Allegedly Ramming Van with Three Children Inside

Reading Time: 2:30 min

Traffic is undoubtedly a grind in urban areas, and most drivers experience frustration regularly on their daily commutes. But when simple annoyance escalates into a road rage incident, the results…

View post

Experts Believe Young Adult Gun Ban to be Decided by US Supreme Court

Reading Time: 3:52 min

The U.S. Supreme Court’s 2022 Bruen decision was a watershed moment for gun rights. It erected a legal roadblock against efforts by anti-gunners to infringe on constitutional freedoms by mandating…

View post

Oklahoma Lawmaker Proposes Eliminating Sales Taxes on Gun Safety Devices

Reading Time: 2:27 min

As multiple states consider sales tax holidays for gun and ammunition purchases, another state proposed a novel approach to enhancing weapon safety. And it comes from an unusual source. Oklahoma…

View post

Second Amendment Rights for Virginia Residents Hinge on Governor’s Veto Pen

Reading Time: 2:33 min

A prominent gun rights organization asked its members to petition Virginia Gov. Glenn Youngkin (R) to wield his veto pen once again and stop state lawmakers from running roughshod over…

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>