【问题标题】:Canvas size of ITextIText 的画布大小
【发布时间】:2016-11-01 18:08:59
【问题描述】:

我正在开发 Canvas 编辑器的项目。我正在使用 IText 在画布中添加文本。用户可以更改字体,使文本加粗斜体等。当用户想要更改文本的字体大小但文本不会以 px 大小更改时的问题。如果需要,我可以放置所有代码。并且可以显示实时版本。现在要更改大小,我使用此代码

document.getElementById('fontSize').onchange = function() {
  canvas.getActiveObject().set("FontSize", this.value);
  canvas.renderAll();
}
<div class="select-wrapper font-size">
  <select id="fontSize">
    <option value="10">10</option>
    <option value="12">12</option>
    <option value="14">14</option>
    <option value="16">16</option>
    <option value="18">18</option>
    <option value="20">20</option>
    <option value="22">22</option>
    <option value="24">24</option>
    <option value="26">26</option>
    <option value="28">28</option>
    <option value="30">30</option>
    <option value="32">32</option>
    <option value="34">34</option>
    <option value="36">36</option>
    <option value="38">38</option>
    <option value="40">40</option>
    <option value="42">42</option>
    <option value="44">44</option>
    <option value="46">46</option>
    <option value="48">48</option>
    <option value="50">50</option>
    <option value="52">52</option>
    <option value="54">54</option>
    <option value="56">56</option>
    <option value="58">58</option>
    <option value="60">60</option>
    <option value="62">62</option>
    <option value="64">64</option>
    <option value="66">66</option>
    <option value="68">68</option>
    <option value="70">70</option>
    <option value="72">72</option>
    <option value="74">74</option>
    <option value="76">76</option>
    <option value="78">78</option>
    <option value="80">80</option>
  </select>
</div>

【问题讨论】:

    标签: javascript fabricjs


    【解决方案1】:

    对不起,您的假设是错误的,请将此答案作为长评论,

    当用户想要更改文本的字体大小时的问题,他可以但是 文本更改不是 px 大小。

    正如您在fabric.js source code 中看到的那样:

    /**
    * Font size (in pixels)
    * @type Number
    * @default
    */
    fontSize:             40,
    

    默认(Ed. and unique)单位是像素。

    如果你运行下面的可执行文件sn-p,你可以看到fabric iText,并输入文本,同步更新它们的字体大小

    $(function() {
      var canvas = new fabric.Canvas('c');
      var iTextSample = new fabric.IText('hello\nworld', {
        left: 50,
        top: 50,
        fontFamily: 'Helvetica',
        fontSize: $('#fontSize').val(),
      });
      $('#dText').css('fontSize', $('#fontSize').val() + 'px');
    
      canvas.add(iTextSample);
      canvas.setActiveObject(iTextSample);
      $('#fontSize').change(
        function() {
          $('#dText').css('fontSize', this.value + 'px');
          canvas.getActiveObject().set("fontSize", this.value);
          canvas.renderAll();
        });
    
    
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.4/fabric.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <canvas id="c" width="150" height="150" style="border: 1px solid rgb(204, 204, 204);"></canvas>
    
    <select id="fontSize">
      <option value="10">10</option>
      <option value="12">12</option>
      <option value="14">14</option>
      <option value="16">16</option>
      <option value="18">18</option>
      <option value="20">20</option>
      <option value="22">22</option>
      <option value="24">24</option>
      <option value="26">26</option>
      <option value="28">28</option>
      <option value="30">30</option>
    </select>
    
    <input id="dText" value="hello world">

    【讨论】:

    • 谢谢您的帮助。
    猜你喜欢
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    相关资源
    最近更新 更多