Так что у меня есть текст, который изменяется всякий раз, когда конкретный <select>
изменен на другой вариант. Мне нужно изменить этот шрифт на размер шрифта, исходя из того, будет ли он перетекать за пределы div. Вот то, что я до сих пор:Как изменить размер постоянно меняющегося текста, чтобы он поместился в div с фиксированной шириной, основываясь на изменении <select>?
var autoAdjust = {
init:function(){
var eObject = document.getElementById('select');
eObject.on("change", autoAdjust.task);
},
task:function(){
var divWidth = jQuery(".containerDiv").width();
var text = document.getElementById("text");
var fontSize = 16;
while (text.width() > divWidth){
text.css("font-size", fontSize -= 0.5);
}
}
}
autoAdjust.init();
Вот CSS:
/* This makes it so you can measure the text width */
#text{
white-space:nowrap;
display: inline-block;
}
Как бы я сделать эту работу ?? Мне кажется, что я слишком усложняю это.
так размер шрифта должен получить меньше и меньше? Я бы рекомендовал использовать прокрутку или позволить div стать выше. –
Да Должно быть, по крайней мере, пока он не поместится в div. У меня нет места для слишком большого творчества на этом, поэтому изменение containerDiv не является чем-то, что мне разрешено делать. @Escobear – ExcellentSP
@Shane - при беглом взгляде две проблемы торчат - 1). Элементы Dom не поддерживают метод .on, поэтому вам необходимо изменить свой собственный селектор (document.getElementById) на jQuery. 2) Не похоже, что вы указываете тип единицы, чтобы увеличить/уменьшить размер шрифта («px», «em» и т. Д.) –