Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery放大/缩小文本以动态填充div?_Jquery_Css_Font Size_Autoresize - Fatal编程技术网

使用jquery放大/缩小文本以动态填充div?

使用jquery放大/缩小文本以动态填充div?,jquery,css,font-size,autoresize,Jquery,Css,Font Size,Autoresize,我看过一些类似的帖子,并尝试过给出的答案,但我似乎无法让它起作用(无论如何对我来说) 基本上,我正在寻找的东西,将自动调整(放大或缩小)我的文本,以适应一个设置的宽度div超过多行。其中第1行是最大的,第2行更小,第3行是最小的文本大小,并且(希望)在文本前进的过程中证明文本的合理性。。这有什么意义吗 任何帮助都将不胜感激!:) 编辑:我忘了提到它最多只能运行2-3行,设置的div宽度为286px 我尝试了以下代码: ;(function($) { $.fn.textfill = functio

我看过一些类似的帖子,并尝试过给出的答案,但我似乎无法让它起作用(无论如何对我来说)

基本上,我正在寻找的东西,将自动调整(放大或缩小)我的文本,以适应一个设置的宽度div超过多行。其中第1行是最大的,第2行更小,第3行是最小的文本大小,并且(希望)在文本前进的过程中证明文本的合理性。。这有什么意义吗

任何帮助都将不胜感激!:)

编辑:我忘了提到它最多只能运行2-3行,设置的div宽度为286px

我尝试了以下代码:

;(function($) {
$.fn.textfill = function(options) {
    var fontSize = options.maxFontPixels;
    var ourText = $('span:visible:first', this);
    var maxHeight = $(this).height();
    var maxWidth = $(this).width();
    var textHeight;
    var textWidth;
    do {
        ourText.css('font-size', fontSize);
        textHeight = ourText.height();
        textWidth = ourText.width();
        fontSize = fontSize - 1;
    } while ((textHeight > maxHeight || textWidth > maxWidth) && fontSize > 3);
    return this;
}
})(jQuery);
$(document).ready(function(e){
  $('.testimonial').textfill({ maxFontPixels: 36 });
});

$('.testional')。每个(函数(i,框){
变量宽度=$(框).width(),
html=“”,
line=$(box).wrapInner(html).children()[0],
n=100;
$(box.css('font size',n);
while($(行).width()>width){
$(box).css('font-size',--n);
}
$(框).text($(行).text());
});

您需要根据您的描述自己编写代码,类似这样的代码应该可以:

  • 使用
    .innerWidth()
    .innerHeight()
  • 根据您自己的数学公式,您可以根据包装分区的大小设置字体大小的公差。使用
    $.css('font-size','12px')切换字体大小,等等
  • 所以你会这样做:

     // get the size of the div
     var w = $('div').innerWidth();
     var h = $('div').innerHeight();
    
     // your own formula to your liking
     if (w >= 100) { fontsize = 11 }
     elseif (w >= 200) { fontsize = 12 }
     else { fontsize = 10 }
    
     //text to resize
     $('div span').css('font-size', fontsize + 'px');
    

    或者可能有它的插件,试试谷歌。

    你试过什么?我们能看看你到目前为止都有什么吗?而且,还不清楚你想做什么…每一行都必须有自己特定的字体大小吗?是的,很难解释。。第1行为最大字体,有3-4个单词,第2行为4-6个单词,稍小,依此类推。。但希望它们也能被证明是合理的……非常感谢,我来试试:)
     // get the size of the div
     var w = $('div').innerWidth();
     var h = $('div').innerHeight();
    
     // your own formula to your liking
     if (w >= 100) { fontsize = 11 }
     elseif (w >= 200) { fontsize = 12 }
     else { fontsize = 10 }
    
     //text to resize
     $('div span').css('font-size', fontsize + 'px');