Redimensione automaticamente o texto para caber em um div (largura e altura)

Olá programadores!

Depois de tentar vários snippets e libs de JavaScript para ajustar o texto a um div, fiquei infeliz porque nenhum deles estava cuidando da ‘altura’ do DIV e o texto poderia estourar …

Então eu escrevi esta função simples no CoffeeScript que testa se o texto estourou o div e irá diminuir seu tamanho até caber!

A função procura por elementos marcados com a .resizeclasse e apenas os redimensiona.

Simples, não é?

autoSizeText = ->
elements
= $('.resize')
console
.log elements
return if elements.length < 0

for el in elements
do (el) ->

resizeText
= ->
elNewFontSize
= (parseInt($(el).css('font-size').slice(0, -2)) - 1) + 'px'
$
(el).css('font-size', elNewFontSize)

resizeText
() while el.scrollHeight > el.offsetHeight

E aqui está a versão compilada do JavaScript :

var autoSizeText;
autoSizeText
= function() {
var el, elements, _i, _len, _results;
elements
= $('.resize');
console
.log(elements);
if (elements.length < 0) {
return;
}
_results
= [];
for (_i = 0, _len = elements.length; _i < _len; _i++) {
el
= elements[_i];
_results
.push((function(el) {
var resizeText, _results1;
resizeText
= function() {
var elNewFontSize;
elNewFontSize
= (parseInt($(el).css('font-size').slice(0, -2)) - 1) + 'px';
return $(el).css('font-size', elNewFontSize);
};
_results1
= [];
while (el.scrollHeight > el.offsetHeight) {
_results1
.push(resizeText());
}
return _results1;
})(el));
}
return _results;
};

Você pode encontrar um exemplo no JSFiddle: http://jsfiddle.net/mn4rr/1/
Você também pode contribuir no Github: https://gist.github.com/iam4x/5015270

Diverta-se!