Raphaelでテキストオブジェクトの部分文字列の属性を変更できるかどうかは疑問でした。例えば、私は次の文字列の中にwizardという言葉を大胆にしたいと思う。 "魔法の魔法使いは世界を支配した!"ラファエルテキストオブジェクト内にある。私はRaphael.print()メソッドを使用して見て、私はコードの他の部分のテキストの属性のいくつかが必要です。Raphaeljsサブストリングのテキスト属性
2
A
答えて
4
フォントは、通常のhtmlと同様に要素レベルで設定されます。特定の単語に別のフォントやスタイルを適用するには、テキストを別の要素に分割する必要があります。
var start = paper.text(20, 20, "The magical ");
start.attr({ "text-anchor": "start" });
var startBox = start.getBBox();
var bold = paper.text(startBox.width + startBox.x, 20, "wizard ");
bold.attr({ "text-anchor": "start", "font-weight": "bold" });
var boldBox = bold.getBBox();
var end = paper.text(boldBox.width + boldBox.x, 20, "ruled the world!");
end.attr({ "text-anchor": "start" });
2
gilly3の解決策の問題は、要素のx座標が絶対的であることです。テキストを変更するときは、例えばbold.attr({"text":"sorcerer"})
のように要素が重なります。
代替解決策は、相対的な位置付けを伴うカスタムtspan
要素からテキスト要素を構成することです。これは、オブジェクトモデルの観点からも少し洗練されています。ただし、テキスト要素を直接操作する必要があります。コード:
var content = paper.text(20, 20, "The magical").attr({ "text-anchor": "start" });
var txt1=Raphael._g.doc.createTextNode(" wizard ");
var txt2=Raphael._g.doc.createTextNode("ruled the world!");
var svgNS = "http://www.w3.org/2000/svg";
var ts1 = Raphael._g.doc.createElementNS(svgNS, "tspan");
var ts2 = Raphael._g.doc.createElementNS(svgNS, "tspan");
ts1.setAttribute("font-weight","bold");
ts1.appendChild(txt1);
ts2.appendChild(txt2);
content.node.appendChild(ts1);
content.node.appendChild(ts2);
content.node.children[1].textContent=" sorcerer ";
免責事項:親要素のx,y,dx,dy
を変更する際にラファエルがSVG自体がこれを扱うことができるにもかかわらず、tspansの相対位置を変更することができます。代わりに変換文字列を使用できます。例:
content.node.setAttribute("x",500); //works
content.attr({"x":500}); //undesired result
content.transform("t100"); //works
関連する問題
- 1. Swift 3 textviewサブストリングの属性を取得
- 2. sunspot solr属性サブストリング/ワイルドカード検索
- 3. Xpath属性とテキスト
- 4. サブストリングを含む属性のRでのWebスクレイピング
- 5. ANTLRテキスト属性のNullPointerException
- 6. ASP.NET MVC - チェックボックスのテキスト属性
- 7. 属性テキストのNSXMLParser引用
- 8. リソースファイルのC#属性テキスト?
- 9. UITextFieldで属性付きテキスト
- 10. 「NoneType」オブジェクトには、属性「アダプター」、「NoneType」オブジェクトが属性「テキスト」
- 11. の変更テキストの他の属性
- 12. NSTextViewカスタム属性のテキストをドラッグ
- 13. schemas.org:属性のタイトルではないテキスト
- 14. JS:div属性のテキストをdivに変換
- 15. XML「strの」オブジェクトには、属性「テキスト」
- 16. 崇高なテキスト3 XMLインデントアレンジメント属性
- 17. RaphaelJSフリートランスフォームIE
- 18. KineticjsとRaphaeljs
- 19. RaphaelJS - 同時アニメーション
- 20. RaphaelJSターゲット位置
- 21. JavaScript MVC Framework + raphaelJS
- 22. テキスト要素を円弧に沿って移動するRaphaelJS
- 23. RaphaelJSのアニメーションの接続
- 24. カスタム属性vs data- *属性
- 25. python:クラスの属性とインスタンスの属性
- 26. 欠落XML属性 - 属性の「バージョン」
- 27. HTML属性へのMVCモデル属性
- 28. MT属性ファイルのKE属性
- 29. jqueryタイトルの属性のテキストのポップアップの非表示
- 30. jQuery入力ボタンの値の変更後の属性のテキスト