3

Raphael JavaScriptライブラリを使用しているときに、紙/キャンバスの絶対位置を見つけるにはどうすればよいですか?

たとえば、最小限の作業例を次のようにするとします。

<html>
<head>
<script type="text/javascript" src="raphael.js"></script>
<script>
    window.onload = function() {
        var size = 600;
        var paper = new Raphael(document.getElementById("canvas_container"), 
                                size, size);
        var c = paper.circle(100, 100, 50).attr({fill: "#00f"});
        var x = 0; // get the paper's absolute x coordinate
        var y = 0; // get the paper's absolute y coordinate
        document.getElementById("coordinates").innerHTML = x + " " + y;
    };
</script>
<style type="text/css">
    #canvas_container {
        width: 600px;
        margin-left: auto;
        margin-right: auto;
        border: 1px solid #aaa;
    }
</style>
</head>
<body>
    <p id="coordinates"></p>
    <div id="canvas_container"></div>
</body>
</html>

紙が存在するdivのIDを知らなくても、ページの上部から紙の絶対x座標とy座標を見つけるにはどうすればよいですか?(例では、それを知ることができますが、実際の状況では、div IDを知ることははるかに複雑になります。)

4

3 に答える 3

5

わかった。私はそれが今どうあるべきかわかります:

var x = this.paper.canvas.offsetLeft;
var y = this.paper.canvas.offsetTop;

これは、IE8.0とChrome9.0の両方で正しく機能するようです。

于 2011-01-30T04:46:40.133 に答える
1

Raphaelペーパーの絶対位置を取得するには、jQueryを使用できます。

$(paper.canvas).offset()

于 2011-09-15T09:10:54.490 に答える
0

受け入れられた解決策は私にはうまくいきませんでした、それは私にx=-1とy=-1を与えます、それで誰かが同じ問題を抱えているなら私はそれをこのように解決しました:

var x = paper.canvas.parentNode.offsetLeft;
var y = paper.canvas.parentNode.offsetTop;
于 2015-06-18T10:01:58.317 に答える