/* 컨테이너의 넓이에 따라 글자크기를 조정하거나, 한줄에 보여줄 글자수를 지정하여 컨테이너 넓이에 따라 글자크기가 변하도록 설정 */ (function($) { $.fn.ozfontresize = function(options) { var settings = $.extend({ fontMode:'size',//size:font-size, num:char counts per line //fontMode:size fontSize:16, //font-size baseWidth:300, //기준이 될 컨테이너 넓이 overSize:false, //기준 넓이보다 큰 경우 글자크기를 기준크기보다 크게할지 여부 recursive:false,//하위 p,span,th,td에도 적용여부 //fontMode:num charNum:35, //한줄에 보여줄 글자수 minWidth:10, maxWidth:9999, //최대,최소 컨테이너 넓이 minSize:5, maxSize:999 //최대,최소 font-size }, options), fResize = function(el) { var $el = $(el), elw = $el.width(), width = elw > settings.maxWidth ? settings.maxWidth : elw < settings.minWidth ? settings.minWidth : elw; fontBase = (settings.fontMode=='size')?(width / settings.baseWidth) * settings.fontSize:width / settings.charNum; fontSize = fontBase > settings.maxSize ? settings.maxSize : fontBase < settings.minSize ? settings.minSize : fontBase; if(settings.fontMode=='size' && !settings.overSize && fontSize>settings.fontSize) fontSize=settings.fontSize; if(settings.fontMode=='size' && settings.recursive) { $el.css('font-size', fontSize+'px').find('p,span,table tr th,table tr td').css('font-size', fontSize+'px'); } else { $el.css('font-size', fontSize+'px'); } }; return this.each(function() { var that = this; $(window).resize(function(){fResize(that);}); fResize(this); }); }; }(jQuery));