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 .resize
classe 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!