File "jq-quickfit.min.js"
Path: /StudyIB/js/jq-quickfit/jq-quickfitminjs
File size: 2.31 KB
MIME-type: text/plain
Charset: utf-8
!function(s){var h,i,n;n={min:8,max:12,tolerance:.02,truncate:!"quickfit",width:null,sampleNumberOfLetters:10,sampleFontSize:12},i=function(){var e=null;function i(t){this.options=t,this.item=s('<span id="meassure"></span>'),this.item.css({position:"absolute",left:"-1000px",top:"-1000px","font-size":this.options.sampleFontSize+"px"}),s("body").append(this.item),this.meassures={}}return i.instance=function(t){return e||(e=new i(t)),e},i.prototype.getMeassure=function(t){var e;return(e=this.meassures[t])||(e=this.setMeassure(t)),e},i.prototype.setMeassure=function(t){var e,i,s,n,h;for(n="",s=" "===t?" ":t,i=0,h=this.options.sampleNumberOfLetters-1;0<=h?i<=h:h<=i;0<=h?i++:i--)n+=s;return this.item.html(n),e=this.item.width()/this.options.sampleNumberOfLetters/this.options.sampleFontSize,this.meassures[t]=e},i}(),h=function(){function t(t,e){this.$element=t,this.options=s.extend({},n,e),this.$element=s(this.$element),this._defaults=n,this._name="quickfit",this.quickfitHelper=i.instance(this.options)}return t.prototype.fit=function(){var t;return this.options.width||(t=this.$element.width(),this.options.width=t-this.options.tolerance*t),(this.text=this.$element.attr("data-quickfit"))?this.previouslyTruncated=!0:this.text=this.$element.text(),this.calculateFontSize(),this.options.truncate&&this.truncate(),{$element:this.$element,size:this.fontSize}},t.prototype.calculateFontSize=function(){var t,e,i;for(i=e=0;i<this.text.length;++i)t=this.text.charAt(i),e+=this.quickfitHelper.getMeassure(t);return this.targetFontSize=parseInt(this.options.width/e),this.fontSize=Math.max(this.options.min,Math.min(this.options.max,this.targetFontSize))},t.prototype.truncate=function(){var t,e,i,s,n;if(this.fontSize>this.targetFontSize){for(s="",n=3*this.quickfitHelper.getMeassure(".")*this.fontSize,t=0;n<this.options.width&&t<this.text.length;)i=this.text[t++],e&&(s+=e),n+=this.fontSize*this.quickfitHelper.getMeassure(i),e=i;return s.length+1===this.text.length?s=this.text:s+="...",this.textWasTruncated=!0,this.$element.attr("data-quickfit",this.text).html(s)}if(this.previouslyTruncated)return this.$element.html(this.text)},t}(),s.fn.quickfit=function(e){for(var i=[],t=this.each(function(){var t=new h(this,e).fit();return i.push(t),t.$element}),s=0;s<i.length;s++){var n=i[s];n.$element.css({fontSize:n.size+"px"})}return t}}(jQuery,window);