Рафаэль JS: как изменить цвет определенных букв в текстовом элементе?
У меня есть следующий код:
var set = paper.set();
var text = paper.text(0, 0, 'bla1 bla2' ).attr({ fill: 'blue'});
set.push(text);
Как я могу изменить цвет "bla2" на зеленый сейчас?
Я уже пытался разделить строку на два текстовых элемента и присвоить координаты 'bla1'+ width 'bla1' второму. Это не сработало, так как я не узнал ширину "bla1". Вторая проблема с этим решением заключается в том, что я могу захотеть изменить размер шрифта "bla1 bla2", который автоматически изменит ширину "bla1" и исказить положение "bla2".
спасибо заранее!
1 ответов
Вы можете попробовать что-то вроде этого:
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;
}