草庐IT

javascript - 拉斐尔 JS : how to change the color of certain letters within a text-element?

coder 2024-12-23 原文

我有以下代码:

        var set = paper.set();
        var text = paper.text(0, 0, 'bla1 bla2' ).attr({ fill: 'blue'});
        set.push(text);

现在如何将“bla2”的颜色更改为绿色?

我已经尝试将字符串拆分为两个文本元素,并将 'bla1' 的坐标 + 'bla1' 的宽度分配给第二个。它没有用,因为我找不到“bla1”的宽度。此解决方案的第二个问题是我可能想要更改“bla1 bla2”的字体大小,这将自动更改“bla1”的宽度并扭曲“bla2”的位置。

提前致谢!

最佳答案

你可以尝试这样的事情:

HTML:

<div id="canvas"></div>​

JS:

var text = "this is some colored text";
var paper = Raphael('canvas', '100%', document.documentElement.clientHeight/2 );
var colors = ["#ffc000", "#1d1d1d", "#e81c6e", "#7c7c7c", "#00aff2"];
var letterSpace = 5;
var xPos = 10;
var yPos = 10;

textNodes = text.split(' ');

for( var i=0; i < textNodes.length; ++i) {       
    var textColor = colors[i];
    var textNode = paper.text( xPos , yPos , textNodes[i]);
        textNode.attr({
            'text-anchor': 'start',
            'font-size' : 12,
            'fill' : textColor
        });
    xPos = xPos + textNode.getBBox().width + letterSpace;
}
​

演示: http://jsfiddle.net/aamir/zsS7L/

关于javascript - 拉斐尔 JS : how to change the color of certain letters within a text-element?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7942269/

有关javascript - 拉斐尔 JS : how to change the color of certain letters within a text-element?的更多相关文章

随机推荐