私は最近Raphael.jsを使いこなしていました。ラファエルの各オブジェクトの位置に関する問題が発生しました。ラファエルのオブジェクトを相対的に配置する
「キャンバス」は任意に作成したいが、ページ上にすでに配置されているdiv内に配置したい。私はブロック要素のような振る舞いをする方法を見つけようとしていますが、答えは出ていません。それぞれの新しいraphaelオブジェクトはdivの外側に配置されます。ここ
は、HTMLです:
...
#content{height:100%; width:980px; margin:0 auto;}
</style>
</head>
<body>
<div id="content"></div>
...
とJavaScript:私は考慮し
var previews = [];
var prevSize = 25;
var spacing = 10;
//get container
var container = document.getElementById('content');
//get container width
var containerWidth = parseInt(getComputedStyle(container,"").getPropertyValue('width'));
var prevsPerRow =containerWidth/(prevSize+spacing);
var rowsPerPage = 20;
for(var y=0; y<rowsPerPage-1; y++){
for(var x=0; x<prevsPerRow; x++){
var preview = Raphael((x*prevSize)+(x*spacing), (y*prevSize)+(y*spacing),prevSize, prevSize);
previews.push(preview);
}
}
for(var x=0; x<previews.length-1; x++){
var temp = previews[x];
var rectangle =temp.rect(0,0,prevSize,prevSize);
rectangle.attr('fill','black');
}
一つの解決策は、単に、オブジェクトのxおよびy COORDSに所望のDIVのオフセットを加算しましたしかし、これは最善の解決策のようには見えません。
ありがとうございました!
編集:ここに私が得ているものを正確に解明するのに役立つjsfiddleがあります。 http://jsfiddle.net/xpNBr/
ないより遅れて!私はラファエルにこの質問をしてから触れていないが、誰かにとって助けになるだろうと確信している。ありがとう! – danem
jsfiddleでそれを実行すると、テキストオブジェクトはその座標に関してrectオブジェクトに相対的ではないことが示されます。どちらもキャンバスに関連しています。どのように私は親矩形に相対的な座標で1つの矩形を描くことができます。どちらも同じキャンバスにありますか? – remort