繁体   English   中英

如何使用Raphael.js缩放文本

[英]How to scale text using Raphael.js

我最近开始了解Raphael.js,并且正在尝试动手。 我想缩放文本,但是无法正常工作。 在Google中搜索了很多之后,我仍然找不到任何想法。

代码是:

var paper = Raphael("paper1", 1000,1000);

var txt = paper.text(20,50,"Hello World").attr({
"font-family":"Arial","font-size":"30px", "font-weight": "normal", 
fill: "#000000", stroke:"black", "stroke-width": "0px",
"text-anchor" : "start" , "font-style": "normal"});

flip可以通过txt.scale(-1,1)使用,但是txt.scale(2,1)不能缩放文本。

有没有办法缩放文本?

注意:文本的字体大小需要保持相同,即我的情况下为30px。

有没有办法缩放文本?

演示

我检查了一下,它就像一个魅力

var r = Raphael('test');

var t = r.text(200, 100, "I am a text").attr({fill:'red', 'font-size':30});

$('#zoomin').click(function() {
    t.scale(2);
});

$('#zoomout').click(function() {
    t.scale(.5);
});

如果仅缩放文本,则字体大小应更改。 我们需要将文本转换为图像,然后进行缩放。 为此,我使用了隐藏的画布。

以下代码对我有用。

<canvas id='textCanvas' style="display:none"></canvas>

<script>
  var paper = Raphael("paper1", 1000,1000);
  var img =  paper.image(getTxtImg("Hello World","italic","bold","15px","arial",
                                       "#000000",130,35),20,28,300,80)

  img.scale(2,1)  //Double in width
  img.scale(.5,1)  //Half  in width

function getTxtImg(txt,style,weight,fontsize,fontfamily,color,w,h)
{
  var tCtx = document.getElementById('textCanvas').getContext('2d');
  tCtx.canvas.width = w;
  tCtx.canvas.height = h    ;
  var fontstr = "" + style + " " + weight + " " + fontsize + " " + fontfamily + " ";
  tCtx.font = fontstr
  tCtx.fillStyle  = color
  tCtx.fillText(txt, 0, h);
  return tCtx.canvas.toDataURL();
}
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM