Javascript конвертировать ширину и высоту в размер шрифта
Я не уверен, что этот вопрос уже задавался и отвечался, но я не нашел никакого соответствующего результата.
Я хотел бы знать, можно ли рассчитать и преобразовать конкретные размеры (ширина / высота) в размер шрифта?
Например, у меня есть:
var textWidth = 150;
var textHeight = 30;
И я хотел бы получить размер шрифта из этих размеров (пикселей)?
РЕДАКТИРОВАТЬ: Спасибо dystroy, мне наконец удалось решить эту проблему с вашей помощью. Я использовал опубликованную здесь функцию, и после этого она была не очень сложной:
$(function(){
$( "#height, #width" ).keyup(function(){
var varHeight = $( "#height" ).val();
var varWidth = $( "#width" ).val();
if( varHeight != "" && varWidth != "" ){
$( "#text_container" ).css( "width", varWidth );
$( "#text_container" ).css( "height", varHeight );
$( "#text_container" ).textfill({ maxFontPixels: 500 });
var getFontsize = $( "#text_container > span" ).css( "font-size" );
var fontSize = parseInt( getFontsize.slice(0, -2) );
$( "#fontsize" ).val( fontSize );
}
});
});
Еще раз спасибо.
1 ответ
Я сделал небольшой интерфейс для того, что, как я понимаю, является вашим вопросом: вы вводите максимальную ширину и максимальную высоту для некоторого текста, и он автоматически вычисляет размер шрифта для адаптации текста: http://jsfiddle.net/kPZ3E/
HTML:
Max width : <input id=width value=200> px
<br>Max height : <input id=height value=20> px
<br><br>
<table border=1><tr><td id=txtcell nowrap><span id=txt style=>Some sample text.</span></td></tr></table>
<br>Font Size : <span id=mes></span>
JS:
var fontSize = 100;
var reduce = function() {
$('#txt').css('font-size', fontSize);
$('#mes').html(fontSize);
if ($('#txt').width()>$('#width').val() || $('#txt').height()>$('#height').val()) {
fontSize -= 1;
reduce();
}
};
reduce();
$('#width, #height').change(function(){fontSize = 100;reduce()});
Примечание: тайм-аут в скрипке только здесь, чтобы показать процесс сокращения с анимацией.