自动调整文本以适合div (宽度& ) 高度)(范例)

・2 分钟阅读

所以,我在CoffeeScript中编写这个简单的函数,测试文本溢出了div,但是它会自动减小它的大小,直到合适!

函数查找用.resize类标记的元素,并且只调整它们的大小。

很简单不是吗?


autoSizeText = ->
 elements = $('.resize')
 console.log elements
 return if elements.length < 0

 for el in elements
 do (el) ->

 resizeText = ->
 elNewFontSize = (parseInt($(el).css('font-size').slice(0, -2)) - 1) + 'px'
 $(el).css('font-size', elNewFontSize)

 resizeText() while el.scrollHeight > el.offsetHeight

下面是JavaScript编译版本:


var autoSizeText;
autoSizeText = function() {
 var el, elements, _i, _len, _results;
 elements = $('.resize');
 console.log(elements);
 if (elements.length < 0) {
 return;
 }
 _results = [];
 for (_i = 0, _len = elements.length; _i < _len; _i++) {
 el = elements[_i];
 _results.push((function(el) {
 var resizeText, _results1;
 resizeText = function() {
 var elNewFontSize;
 elNewFontSize = (parseInt($(el).css('font-size').slice(0, -2)) - 1) + 'px';
 return $(el).css('font-size', elNewFontSize);
 };
 _results1 = [];
 while (el.scrollHeight > el.offsetHeight) {
 _results1.push(resizeText());
 }
 return _results1;
 })(el));
 }
 return _results;
};

你可以在JSFiddle上找到一个示例: http://jsfiddle.net/mn4rr/1/
你还可以在Github上进行贡献: https://gist.github.com/iam4x/5015270

玩得开心 !

学以致用 profile image