Wie finden Sie die aktuelle Breite eines <div>
Browsers kompatibel, ohne eine Bibliothek wie jQuery zu verwenden?
javascript
html
Joda Maki
quelle
quelle
Antworten:
quelle
cientWidth
obwohl ich den wirklichen Unterschied nicht kenne.offsetWidth
enthält Randbreite,clientWidth
nicht.display: none
Teil des Dokuments ist oder nicht, hat es immer eine Versatzhöhe von Null.Sie können verwenden
clientWidth
oderoffsetWidth
Referenz Mozilla Developer NetworkEs wäre wie:
oder mit Rahmenbreite:
quelle
Alle Antworten sind richtig, aber ich möchte noch einige andere Alternativen geben, die funktionieren könnten.
Wenn Sie nach der zugewiesenen Breite suchen (Polsterung, Rand usw. ignorieren), können Sie diese verwenden.
Mit getComputedStyle können Sie auf alle Stile dieser Elemente zugreifen. Zum Beispiel: padding, paddingLeft, margin, border-top-left-radius und so weiter.
quelle
Sie können das DOM auch mit ClassName durchsuchen. Beispielsweise:
Dies gibt ein Array zurück. Wenn es eine bestimmte Eigenschaft gibt, an der Sie interessiert sind. Zum Beispiel:
divWidth
wird jetzt gleich der Breite des ersten Elements in Ihrem div-Array sein.quelle
Eigentlich müssen Sie nicht verwenden
document.getElementById("mydiv")
.Sie können einfach die ID des div verwenden, wie:
var w = mydiv.clientWidth;
oder
var w = mydiv.offsetWidth;
etc.
quelle
Eine weitere Option ist die Verwendung der Funktion getBoundingClientRect. Bitte beachten Sie, dass getBoundingClientRect ein leeres Rect zurückgibt, wenn die Anzeige des Elements 'none' ist.
quelle
Rufen Sie die folgende Methode für div oder body tag auf. onclick = "show (event);" Funktionsshow (Ereignis) {
quelle
Der richtige Weg, um den berechneten Stil zu erhalten, besteht darin, zu warten, bis die Seite gerendert wird. Dies kann auf folgende Weise erfolgen. Achten Sie auf das Timeout beim Abrufen von
auto
Werten.Wenn Sie nur verwenden
Sie können
auto
Werte für Breite und Höhe abrufen, da Browser erst nach dem vollständigen Laden gerendert werden.quelle