suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Das Element muss verschwinden, wenn sich die Seite dem Ende nähert

Ich habe diesen JS-Code zum Hinzufügen und Entfernen von Klassen, wenn ich vom oberen Rand der Seite nach unten scrolle, aber ich möchte ihn verschwinden lassen, wenn Sie sich dem Ende der Seite nähern, oder nach einigem Scrollen zurückgehen und zum Alten zurückkehren Zustand (z. B. von rechts :7px nach rechts: -150px). Ich habe den gleichen JS-Code kopiert und geändert scrollTop > rollBottom, aber es funktioniert nicht.

jQuery(document).on('scroll', (e) => {
  if (document.body.scrollTop > 120 || document.documentElement.scrollTop > 350) {
    console.log('now');
    jQuery('.ast-below-header-bar').addClass('filterr');
  } else {
    console.log('no');
    jQuery('.ast-below-header-bar').removeClass('filterr');
  }
})
body {
  height: 500vh
}

.ast-below-header-bar {
  display: grid;
  position: fixed;
  right: -150px;
  top: 14%;
  background: red;
  height: 200px;
  width: 200px;
  transition: .3s;
}

.ast-below-header-bar.filterr {
  right: 7px!important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ast-below-header-bar"></div>

P粉463418483P粉463418483244 Tage vor368

Antworte allen(1)Ich werde antworten

  • P粉512526720

    P粉5125267202024-03-30 17:50:01

    您可以使用 window.innerHeight 在滚动底部执行计算。

    根据您的需要进行调整。

    jQuery(document).on('scroll', (e) => {
      if ((window.innerHeight + window.pageYOffset + 350) <= document.body.offsetHeight && document.documentElement.scrollTop > 350) {
        console.log('now');
        jQuery('.ast-below-header-bar').addClass('filterr');
      } else {
        console.log('no');
        jQuery('.ast-below-header-bar').removeClass('filterr');
      }
    })
    body {
      height: 500vh
    }
    
    .ast-below-header-bar {
      display: grid;
      position: fixed;
      right: -150px;
      top: 14%;
      background: red;
      height: 200px;
      width: 200px;
      transition: .3s;
    }
    
    .ast-below-header-bar.filterr {
      right: 7px!important;
    }
    
    

    Antwort
    0
  • StornierenAntwort