そこで、d3で作成したタグクラウドの例を使用しています。
それにカーソルを合わせたときに各単語の上にDivを配置しようとしていますが、divの配置方法は、svg単語要素の変換属性に依存しているため、基本的に問題があります。
この変換属性は解析する必要のある文字列ですが、文字列には取得する必要のある正の値と負の値の両方が含まれています。
tagCloudHover.style("top", function(){
//parses the words attributes for its position, and gives that position to tagCloudHover
var str, matches, index, num;
str = thisWord.attr("transform");
matches = str.match(/\d+/g);
for (index = 1; index < 2; ++index) {
num = (parseInt(matches[index], 10));
}
if(num<0){
return -num+"px";
}else{
return num+"px";
}
});
私のコードは上記のとおりで、最後のステートメントは何もしませんが、文字列からIntを取得できます。問題は、負の符号を取得しないことです。
私は構文解析が得意ではありませんが、いくつかの異なるstr.match関数を試しましたが、何も機能しないようです。
parseNinjasにアイデアはありますか?何でも役立ちます。アイザック