JavaScript ermittelt die Position der Bildlaufleiste und verschiebt die Seite zum Ankerpunkt

JavaScript ermittelt die Position der Bildlaufleiste und verschiebt die Seite zum Ankerpunkt

Vorwort

In diesem Artikel wird ein Problem beschrieben, auf das ich bei meiner letzten Arbeit gestoßen bin. Im Prozess der hybriden Entwicklung der nativen App und des Front-Ends h5 ist eine der Seiten die Seite zur Auswahl einer Städteliste, ähnlich der Städteauswahl in Meituan und Ele.me, der Banklistenauswahl in der Bank-App und der schnellen Positionierung des Ankerpunkts der Kontaktauswahl im Adressbuch. Als Anfänger empfinde ich diese Funktion immer noch als etwas anstrengend. Lassen Sie mich einige der Implementierungsmethoden mit Ihnen teilen, die ich gefunden habe.

Was ist das Ankerpunktproblem?

Bei PC-seitigen Webseiten gibt es auf der rechten Seite der allgemeinen Webseite eine Schaltfläche zum Zurück-nach-oben-Knopf. Klicken Sie darauf, um direkt zum Anfang der Webseite zu springen. Dies ist die Realisierung des Ankerpunkts.

Bei mobilen Geräten öffnen Sie das Adressbuch Ihres Telefons, klicken auf den Buchstaben rechts und die Seite springt direkt zum Kontakt mit dem entsprechenden Buchstaben. Dies ist auch die Implementierung des Ankerpunkts.

Gemeinsame Lösungen

1. Das href-Attribut im <a>-Tag wird auf den Wert der ID des Sprungelements gesetzt

<Stil>
    #meindiv{
      Höhe: 1200px;
      Breite: 100 %;
      Hintergrundfarbe: rosa;
      Position: relativ;
    }
    A{
      Position: absolut;
      oben: 1000px;
      links: 1000px;
    }
   </Stil>
  <div id="meindiv">
    Ich bin oben auf der Seite</div>
  <a href="#mydiv" rel="external nofollow" >Zurück zum Anfang</a>

Die obige Methode entspricht dem Setzen eines Hyperlinks und das A-Tag springt direkt, allerdings ändert dies die Adresse in der Adressleiste des Browsers, was nicht sehr praktisch ist.

2. Native js erhält die Position der Bildlaufleiste und ändert scrollTop

<Stil>
    Körper{
      Position: relativ;
    }
    h1{
      Rand: 0 automatisch;
    }
    .mybtn1{
      Position: fest;
      links: 200px;
      oben: 500px;
    }
    .mybtn2{
      Position: fest;
      links: 200px;
      oben: 550px;
    }
  </Stil>
  <Text>
    <h1 id="topH1">1</h1>
    <h1>2</h1>
    <h1>3</h1>
    <h1>4</h1>
    <h1>5</h1>
    <h1>6</h1>
    <h1>7</h1>
    <h1>1</h1>
    <h1>2</h1>
    <h1>3</h1>
    <h1>4</h1>
    <h1>5</h1>
    <h1>6</h1>
    <h1>7</h1>
    <h1>1</h1>
    <h1>2</h1>
    <h1>3</h1>
    <h1>4</h1>
    <h1>5</h1>
    <h1>6</h1>
    <h1 id="tobtmH1">7</h1>
  <button class="mybtn1" onclick="toTop()">Zurück zum Anfang</button>
  <Skript>
   Funktion toTop(){
    var topH1 = document.getElementById("topH1")
    document.documentElement.scrollTop=topH1.offsetTop 
    window.pageYOffset=topH1.offsetTop 
    Dokument.body.scrollTop=topH1.offsetTop;
    
   }
  </Skript> 
  </body>

Mit dieser Methode wird der Schaltfläche ein Klickereignis hinzugefügt und die Position der Bildlaufleiste geändert, nachdem das Klickereignis ausgelöst wurde. Bei dieser Methode müssen jedoch Kompatibilitätsprobleme behoben werden, was problematisch ist. Sie wurde auf PCs und Mobilgeräten getestet und für wirksam befunden.

3.element.scrollIntoview bewirkt, dass sich die Bildlaufleiste entsprechend der Ansicht ändert

<Stil>
    Körper{
      Position: relativ;
    }
    .meindiv{
      Rand oben: 100px;
      Rand: 1px durchgehend rosa;
    }
    h1{
      Rand: 0 automatisch;
    }
    .mybtn1{
      Position: fest;
      links: 200px;
      oben: 500px;
    }
    .mybtn2{
      Position: fest;
      links: 200px;
      oben: 550px;
    }
</Stil>
<Text>
  <div Klasse="meindiv">
  <h1 id="topH1">1</h1>
  <h1>2</h1>
  <h1>3</h1>
  <h1>4</h1>
  <h1>5</h1>
  <h1>6</h1>
  <h1>7</h1>
  <h1>1</h1>
  <h1>2</h1>
  <h1>3</h1>
  <h1>4</h1>
  <h1>5</h1>
  <h1>6</h1>
  <h1>7</h1>
  <h1>1</h1>
  <h1>2</h1>
  <h1>3</h1>
  <h1>4</h1>
  <h1>5</h1>
  <h1>6</h1>
  <h1 id="tobtmH1">7</h1>
</div>
  <button class="mybtn1" onclick="toTop()">Zurück zum Anfang</button>
  <button class="mybtn2" onclick="toBtm()">Nach unten gehen</button>
  <Skript>
    fenster.onload = funktion(){

    }
  // Die aufrufende Methode ist element.scrollIntoview()
  //Wenn der Parameter wahr ist, wird die Seite oder der Container so gescrollt, dass die Oberkante des Elements mit der Oberkante des Ansichtscontainers ausgerichtet ist. //Wenn der Parameter falsch ist, wird die Unterkante des Elements mit der Unterkante des Ansichtscontainers ausgerichtet. Funktion toTop(){
      var topH1 = document.getElementById('topH1')
      topH1.scrollIntoView(true)
    }
    Funktion toBtm() {
      var tobtmH1 = document.getElementById('tobtmH1')
      tobtmH1.scrollIntoView(false)
    }
  </Skript> 
</body>

Die obige Methode besteht darin, den Ankerpunkt an den oberen oder unteren Rand der Ansicht zu verschieben. Sie hat nicht allzu viele Nachteile und wurde sowohl auf dem PC als auch auf Mobilgeräten getestet und hat sich als effektiv erwiesen.

Fortschrittliche Lösungen

Die erweiterte Methode besteht darin, das Plug-In der dritten Generation „better-scroll“ aufzurufen. Diese Methode wurde nicht persönlich getestet und die Daten enthalten nicht zu viele Fallstricke. Wenn Sie sie benötigen, fügen Sie sie selbst hinzu.

Oben sind die Details zu JavaScript, mit dem die Position der Bildlaufleiste ermittelt und die Seite zum Ankerpunkt verschoben wird. Weitere Informationen zum Verschieben der Bildlaufleiste zum Ankerpunkt in JavaScript finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Das Problem und die Lösung bei der Verwendung des Vue-Scroller-Seiteneingabefelds, das kein Gleiten auslöst
  • Vue implementiert Links- und Rechts-Links-Sliding-Seiten basierend auf Better-Scroll
  • Vue implementiert den Seitenwechsel-Schiebeeffekt
  • So verwenden Sie Ihre Finger zum Gleiten zwischen Vue-Routingseiten
  • Implementierung des Links- und Rechtsschiebeeffekts beim Seitenwechsel basierend auf Vue
  • JavaScript+html zur Implementierung der Sliding-Verifizierung auf Front-End-Seiten (2)
  • JavaScript + HTML zur Implementierung der Sliding-Verifizierung für Front-End-Seiten
  • js, um ein Gleiten zum unteren Seitenende zu erreichen und automatisch weitere Funktionen zu laden
  • js/jquery-Steuerseite dynamisches Laden von Daten gleitende Bildlaufleiste automatische Ladeereignismethode
  • Vue/js realisiert den Effekt des automatischen Seiten-Hochschiebens

<<:  Eine umfassende Zusammenfassung häufig verwendeter Anweisungen in MySQL (unbedingt lesen)

>>:  6 Lösungen für Netzwerkfehler im Docker-Container

Artikel empfehlen

Detaillierte Erklärung der Mencached-Cache-Konfiguration basierend auf Nginx

Einführung Memcached ist ein verteiltes Caching-S...

So zeigen Sie historische Befehle in Linux an und führen sie aus

Historische Befehle anzeigen und bestimmte Befehl...

Detaillierte Erläuterung des Befehls zum Bereinigen des MySQL-Datenbank-Binlogs

Überblick Heute werde ich hauptsächlich erklären,...

Berechnete Eigenschaften und Listenerdetails

Inhaltsverzeichnis 1. Berechnete Eigenschaften 1....

Detaillierte Einführung und Verwendungsbeispiele für Map-Tag-Parameter

Karten-Tags müssen paarweise vorkommen, d. h. <...

Stellen Sie das Vue-Projekt auf einem Linux-Server bereit

Fall 1 vue-cli erstellt das vue3-Projekt, lädt da...

Detaillierte Erklärung des Vue-Mixins

Inhaltsverzeichnis Lokales Mixin Globale Mixins Z...

Sollten nullbare Felder in MySQL auf NULL oder NOT NULL gesetzt werden?

Personen, die MySQL häufig verwenden, können mit ...

innerHTML-Anwendung

Blanks Blog: http://www.planabc.net/ Die Verwendu...