Gibt es ein div, das eine Bildlaufleiste enthält (z. B. b / c des Überlaufs: auto), wie bekomme ich die genaue innere Breite des Elements? In meinem Beispiel: Ссылка Breite und innere Breite melden die gleiche Breite. Die Nummer, die ich möchte, sollte weniger als 100 sein.
HTML:
%Vor%CSS:
%Vor%Javascript:
%Vor%Aktualisierung:
Ich brauche das, wenn das box2 div ein großes Bild enthält (dauert also eine Sekunde zum Laden). Hier ist ein Beispiel, das eine der folgenden Lösungen integriert (Lukx '), die nicht funktioniert: Ссылка . Irgendwelche Ideen, wie man darauf wartet, dass das Bild geladen wird, bevor die Breite berechnet wird?
Wenn Sie ein neues DIV in den #box1
-Container einfügen, erhält dieses DIV die verfügbare Breite - und beim Lesen seiner Breite wird ein Wert zurückgegeben, der korrekt zu sein scheint.
HTML und CSS bleiben unverändert
JS wird
%Vor%Ich habe auch deine Geige gegabelt, um zu sehen, was ich getan habe: Ссылка
Um diesen Wert mit einer Funktion zu erhalten:
%Vor% Ich bin mir nicht sicher, was genau Sie suchen, aber ich glaube, es ist entweder die scrollWidth
oder clientWidth
der div mit der ID box1.
Beide sind JavaScript-Eigenschaften und benötigen jQuery nicht zum Abrufen, können aber in jQuery mit dem folgenden $('#box1')[0]
abgerufen werden. All dies bewirkt, dass das erste (und wenn Sie nur eine ID verwenden) DOM-Element aus dem jQuery-Selektor zurückgibt.
Wenn Sie nach der Breite des Inhalts von box1 suchen, unabhängig von der Bildlaufleiste, nach der Sie wahrscheinlich suchen, finden Sie $('#box1')[0].scrollWidth
. Wenn Sie nach der verfügbaren Breite suchen und in Box1 angezeigt wird, suchen Sie nach $('#box1')[0].clientWidth
.
Ich habe deine Geige gegabelt, damit du beide in Aktion sehen kannst. Ссылка
Sie können ein anderes div erstellen, indem Sie das ursprüngliche div kopieren, dann die Breite usw. erhalten. Etwas wie:
%Vor%saveDiv.innerWidth gibt Ihnen 0