lubuntu.me/plugins/so-widgets-bundle/js/sow.jquery.fittext.js
2018-01-26 15:50:15 +01:00

69 lines
1.8 KiB
JavaScript

/*global jQuery, sowb */
/*!
* FitText.js 1.2
*
* Copyright 2011, Dave Rupert http://daverupert.com
* Released under the WTFPL license
* http://sam.zoy.org/wtfpl/
*
* Date: Thu May 05 14:23:00 2011 -0600
*/
var sowb = window.sowb || {};
(function ($) {
$.fn.fitText = function (kompressor, options) {
// Setup options
var compressor = kompressor || 1,
settings = $.extend({
'minFontSize': Number.NEGATIVE_INFINITY,
'maxFontSize': Number.POSITIVE_INFINITY
}, options);
return this.each(function () {
// Store the object
var $this = $(this);
// Resizer() resizes items based on the object width divided by the compressor * 10
var resizer = function () {
$this.css('font-size', Math.max(Math.min($this.width() / (compressor * 10), parseFloat(settings.maxFontSize)), parseFloat(settings.minFontSize)));
};
// Call once to set.
resizer();
// Call on resize. Opera debounces their resize by default.
$(window).on('resize.fittext orientationchange.fittext', resizer);
});
};
})(jQuery);
jQuery( function( $ ){
// Apply FitText to all Widgets Bundle FitText wrappers
sowb.runFitText = function () {
$( '.so-widget-fittext-wrapper' ).each( function() {
var fitTextWrapper = $( this );
var compressor = fitTextWrapper.data( 'fitTextCompressor' ) || 0.85;
fitTextWrapper.find( 'h1,h2,h3,h4,h5,h6' ).each( function () {
var $$ = $( this );
$$.fitText( compressor, {
maxFontSize: $$.css( 'font-size' )
} );
} );
fitTextWrapper.data( 'fitTextDone', true );
fitTextWrapper.trigger( 'fitTextDone' );
});
};
$( sowb ).on( 'setup_widgets', sowb.runFitText );
sowb.runFitText();
} );
window.sowb = sowb;