cl01/wp-content/themes/hueman/assets/front/js/libs/jquery-plugins/jqueryFittext.js
2025-02-24 12:39:24 +08:00

65 lines
2.1 KiB
JavaScript
Executable File

/*global jQuery */
/*!
* This is an adapted version of fit text
* 1) a user defined caption font ratio has been added
* 2) the resizer takes into account not only the element width, but the specified parent's height. => this solves the problem of fonts not properly resized on landscape mobile devices, or slider too short (user can set the slider's height)
* @return void()
* 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
*/
(function( $ ){
$.fn.czrFitText = function( kompressor, options ) {
// Setup options
var compressor = kompressor || 1,
settings = $.extend({
'minFontSize' : Number.NEGATIVE_INFINITY,
'maxFontSize' : Number.POSITIVE_INFINITY,
'fontRatio' : 1,
'refParentSel' : '.fittext-p',
'parentCompressorFactor' : 8,
}, options);
return this.each(function(){
// Store the object
var $this = $(this),
$refParent = $this.closest(settings.refParentSel),
_font_size;
// Resizer() resizes items based on the object width divided by the compressor * 10
var resizer = function () {
_font_size = Math.max(
Math.min(
$this.width() / (compressor*10),
( $refParent.length >= 1 ) ? $refParent.height() / (compressor*settings.parentCompressorFactor) : $this.width() / (compressor*10),
parseFloat(settings.maxFontSize)
),
parseFloat(settings.minFontSize)
);
_font_size = Math.max( _font_size * settings.fontRatio, parseFloat( settings.minFontSize ) );
$this.css('font-size', _font_size + 'px' );
$this.css('line-height', ( _font_size * 1.45 ) + 'px');
};
// Call once to set.
resizer();
// Call on resize. Opera debounces their resize by default.
$(window).on('resize.czrFittext orientationchange.czrFittext', resizer);
});
};
})( jQuery );