Heim >Web-Frontend >js-Tutorial >Wie können Tabellenüberschriften beim Scrollen des Hauptteils in HTML mithilfe von CSS und JavaScript fixiert bleiben?

Wie können Tabellenüberschriften beim Scrollen des Hauptteils in HTML mithilfe von CSS und JavaScript fixiert bleiben?

Barbara Streisand
Barbara StreisandOriginal
2024-12-15 07:49:12412Durchsuche

How to Keep Table Headers Fixed While Scrolling the Body in HTML Using CSS and JavaScript?

Gibt es eine browserübergreifende CSS/JavaScript-Technik, um eine lange HTML-Tabelle so anzuzeigen, dass die Spaltenüberschriften auf dem Bildschirm fixiert bleiben und nicht mit dem Tabellenkörper scrollen?

In Microsoft Excel verwenden wir oft die Funktion „Fenster einfrieren“, um die Spaltenüberschriften stabil zu halten, während wir durch den Tabelleninhalt scrollen. Gibt es eine ähnliche browserübergreifende Technik in HTML?

Mithilfe von CSS-Transformationen kann dies mit nur vier Zeilen JavaScript-Code erfolgen:

  1. Verpacken Sie Ihre Tabelle in einen Container mit dem ID „wrap“ und setzen Sie seine Überlaufeigenschaft auf „auto“.
  2. Achten Sie auf das „scroll“-Ereignis auf der Container.
  3. Berechnen Sie im Ereignishandler den Übersetzungswert basierend auf der scrollTop-Eigenschaft.
  4. Wenden Sie den berechneten Übersetzungswert mithilfe der Transformationseigenschaft auf das thead-Element der Tabelle an.

Dieser Ansatz hat folgende Vorteile:

  • Sauber und effizient, da nur vier Zeilen verwendet werden JavaScript.
  • Keine externen JavaScript-Abhängigkeiten.
  • Funktioniert mit allen Tabellenkonfigurationen, einschließlich festem Layout.
  • Unterstützt moderne Browser, einschließlich Chrome, Safari, Firefox und Edge.

Hier ist der Code:

document.getElementById("wrap").addEventListener("scroll", function(){
   var translate = "translate(0,"+this.scrollTop+"px)";
   this.querySelector("thead").style.transform = translate;
});

Unten finden Sie ein vollständiges Beispiel für Referenz:

// JavaScript
document.getElementById("wrap").addEventListener("scroll",function(){
   var translate = "translate(0,"+this.scrollTop+"px)";
   this.querySelector("thead").style.transform = translate;
});

// CSS
#wrap {
    overflow: auto;
    height: 400px;
}

td {
    background-color: green;
    width: 200px;
    height: 100px;
}

// HTML
<div>

Das obige ist der detaillierte Inhalt vonWie können Tabellenüberschriften beim Scrollen des Hauptteils in HTML mithilfe von CSS und JavaScript fixiert bleiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn