2011-m1s2-ter/code/html5/my-extensions.js
2011-03-31 12:03:11 +02:00

36 lines
750 B
JavaScript

$.fn.fitFont = function(w, h, minFont, maxFont) {
minFont = minFont || 0;
maxFont = maxFont || Infinity;
e = $(this)
var oldpos = e.css("position");
e.css("position", "absolute");
var size = parseInt(e.css("font-size"), 10);
var i = 0;
while ((e.width() < w || e.height() < h) && ++i < 10) {
size *= 2;
e.css("font-size", size);
}
var max = size;
var min = 0;
i=0;
while (min < max && ++i < 10) {
size = (max + min) / 2;
e.css("font-size", size);
if (e.width() < w && e.height() < h) {
min = size;
} else {
max = size;
}
}
if (e.width() > w || e.height() > h) --size;
if (size < minFont) size = minFont;
if (size > maxFont) size = maxFont;
e.css("font-size", size);
e.css("position", oldpos);
return e;
}