forked from davatron5000/FitText.js
-
Notifications
You must be signed in to change notification settings - Fork 1
/
jquery.fittext.js
54 lines (43 loc) · 1.31 KB
/
jquery.fittext.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*global jQuery */
/*!
* FitText.js 1.2
*
* Copyright 2011, Dave Rupert http://daverupert.com
* Contribution by Matt Wiebe http://somadesign.ca/
* Released under the WTFPL license
* http://sam.zoy.org/wtfpl/
*
* Date: Mon Sep 05 12:31:00 2011 -0600
*/
(function( $ ){
$.fn.fitText = function( kompressor, options ) {
var settings = {
'minFontSize' : Number.NEGATIVE_INFINITY,
'maxFontSize' : Number.POSITIVE_INFINITY,
'minWidth' : 0,
'maxWidth': Number.POSITIVE_INFINITY
};
return this.each(function(){
var $this = $(this); // store the object
var compressor = kompressor || 1; // set the compressor
if ( options ) {
$.extend( settings, options );
}
// Resizer() resizes items based on the object width divided by the compressor * 10
var resizer = function () {
var winWidth = $(window).width();
// inside window threshold?
if ( winWidth >= settings.minWidth && winWidth <= settings.maxWidth ) {
$this.css('fontSize', Math.max(Math.min($this.width() / (compressor*10), parseFloat(settings.maxFontSize)), parseFloat(settings.minFontSize)));
}
else {
$this.css('fontSize', '');
}
};
// Call once to set.
resizer();
// Call on resize. Opera debounces their resize by default.
$(window).resize(resizer);
});
};
})( jQuery );