【问题标题】:How do I dynamically resize font within bootstrap modals?如何在引导模式中动态调整字体大小?
【发布时间】:2013-03-25 18:39:48
【问题描述】:

stackoverflow.com 救了我很多次,但这实际上是我第一次发布问题。提前感谢您对聪明人的帮助!

我正在尝试使用 jquery-quickfit (https://github.com/chunksnbits/jquery-quickfit/blob/master/demo/index.html) 来自动调整出现在模式中的一段文本的大小。我正在使用 boostrap 来处理模态 (http://twitter.github.com/bootstrap/javascript.html#modals)。

现在,只有在我调整窗口大小后打开模式后,文本才会正确调整大小。当它加载时,文本看起来更小(我不确定它在哪里继承了初始大小)。我希望 javascript 在模态被触发的那一刻启动。我确信有一种明显的方法可以做到这一点,但我并不是那么精通 javascript。

这是相关代码的外观:

<button class="btn" data-toggle="modal" data-target="#my-modal">Open Modal</button>

<div id="my-modal" class="modal hide fade row">
  <div class="modal-body">
    <div class="span3 modalicon">
      <i class="icon-image"></i>
    </div>
    <div class="span9" id="modaltextcontainer">
      <span class="modaltext">This is the content I want resized</span>
    </div>
  </div>
</div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="assets/js/bootstrap.js"></script>
<script src="assets/js/jquery.quickfit.js"></script>
<script type="text/javascript" charset="utf-8">
  $(function() {
    $(window).on('resize', function() {
      $('.modaltext').quickfit({ max: 40, min: 0, truncate: false });     

    });
    $(window).trigger('resize');    
  });
</script>

<span id="meassure" style="position: absolute; left: -1000px; top: -1000px; font-size: 12px;">..........</span>

我假设我需要将引导模式显示事件合并到最后一点 javascript 中,我只是不知道如何。

非常感谢您的帮助!

【问题讨论】:

    标签: javascript jquery twitter-bootstrap modal-dialog autoresize


    【解决方案1】:

    你可以像这样显示模态后绑定 quickfit:

    $('#my-modal').on('show', function() {
       $('.modaltext').quickfit({ max: 40, min: 0, truncate: false });
    });
    

    【讨论】:

    • 谢谢哥们。那并不完全奏效。我认为 quickfit 脚本计算新字体大小的方式是基于容器的宽度(尽管我可能错了)。在“显示”上,看起来 css 转换还没有完成,所以它没有正确计算字体大小?我改为尝试“显示”,这似乎没问题。不过有两个问题。模态显示和正确调整字体大小之间存在延迟。此外,当窗口调整大小时,它不再调整大小。 (顺便问一下,有没有办法在这些 cmets 中进行换行?)
    • 您可以尝试使用文本容器的word-break: break-all; 属性。它会自动打破你的文本以适应容器。
    • 这不符合我的目标。对于更多上下文,将调整大小的文本将是电话号码、电子邮件地址或 url 之类的东西,它们的长度会有所不同(有些人的电子邮件地址较短,有些人的电子邮件地址较长)。我希望该文本保持在一行上并放大或缩小以适应容器。这样,无论窗口大小或用户数据的长度如何,该文本都会清楚地显示。感谢您对此的帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 2017-01-26
    • 2013-10-24
    • 2014-03-31
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多