对齐字母 html5 Js 小提琴示例
Justifing letters html5 Js fiddle example
这是一个JSFiddle。 - 字符串长度越大,右侧添加的空间就越多。
我正在尝试创建一些代码来证明画布上的文本:
var ctx = this.ctx; // Is now canvas context
var str = 'A random string';
var width = 500; // The size that the string should fit to
var strWidth = this.ctx.measureText(str); // The width in pixels of the string when it's put on canvas
var chars = str.split(''); // Make an array of string
var space = (width - strWidth.width) / (chars.length - 1);
var xpos = 1; // Start of text X position
this.ctx.clearRect(0,0,750,750);
var ctx = this.ctx;
Array.each(chars, function(char) {
ctx.fillText(char, xpos, 1);
xpos += space.toInt();
});
我不希望这些文字是合理的,相反,我希望这些字母是合理的。
基本上,这会遍历字符串的字符并将它们绘制到画布上,并在每个字符之间增加间距以填充一定宽度。此代码似乎在右侧添加了太多间距。字符串的字符长度越大,右侧添加的空间就越多。
我认为这可能与space
变量计算有关。我试图通过延长每个字符之间的空间来将随机长度的字符串放入特定空间。
任何帮助不胜感激!
您非常接近,但您只是增加了空格的宽度,而忘记添加字符的宽度:
试试这个,它应该可以工作:
xpos += space + ctx.measureText(char).width;
修改小提琴在这里
此外,为了获得更高的准确性,您不应将间距舍入为整数值。画布可以处理子像素化,它会给出更好的结果(我在小提琴中修改了它,也在画布中进行了演示)。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 使简单的js小提琴动画在按钮单击而不是页面加载时开始
- 对齐字母 html5 Js 小提琴示例
- 简单的Backbone.js小提琴-我在正确的轨道上
- 我的代码不能在Meteor中正常工作,但可以在JS小提琴上工作
- JS小提琴代码不工作后下载整个代码到本地计算机
- 为什么JS小提琴给我的错误'未捕获TypeError: undefined不是一个函数'
- Skrollr.js插件不视差内引导旋转木马-小提琴提供
- 我的小提琴's javascript (*.js) url是什么?所以我可以通过src重新使用它
- Mandelbrot集合程序不工作在JS小提琴