Problemi con getElementsByClassName!

1 Nov 2014
7
0
0
Ciao a tutti,
lo script che segue riesce a far adattare un testo al div (id="fText") che lo contiene.
Lo vorrei utilizzare in una pagina responsive che attraverso un altro script ricalcola le dimensioni di tutti div.

Ma vorrei applicarlo ad una classe di div e quindi utilizzare la stessa funzione per riadattare il formato del testo contenuto in diversi div.

Ho provato a sostituire getElementById con un getElementsByClassName, ma mi crea un array e mi fa assegnare le nuove dimensioni soltanto ad un solo dato dell'array.

C'è un metodo per arrivare alla soluzione a cui aspiro?

<!--
function text(){


var dimText =
document.getElementById("fText")[0], h, o, s, min=1, max=72;

with (dimText.style) {
h = parseInt(height),
o = overflow,
overflow = "auto";

for (;min<max;min++) {
fontSize = min+"px";
s = dimText.scrollHeight;
/* ???. */

if (s > h) {min--; fontSize=min+"px"; break;}
} overflow=o;
}
}
//-->
 
per tutti quelli che potrebbero incappare in un problema simile al mio posto la soluzione...

Codice:
<!--
function text(){
var lunghezzaFText = document.getElementsByClassName("fText");
for (i=0; i<lunghezzaFText.length; i++) {
	var dimText = 
	document.getElementsByClassName("fText")[i], h, o, s, min=1, max=72;
	with (dimText.style) { 
		h = parseInt(height), 
		o = overflow, 
		overflow = "auto"; 
		for (;min<max;min++) {
			fontSize = min+"px";
			s = dimText.scrollHeight;
			if (s > h) {min--; fontSize=min+"px"; break;}
		}
		overflow=o; 
	}
	}
}
//-->

in questo modo mi funziona egregiamente con tutti i div della pagina a cui assegno la classe "fText".
Se comunque avete una soluzione più elegante, mi piacerebbe conoscerla.
 

Discussioni simili