Нахождение абсолютного положения бумаги / холста в библиотеке JavaScript Raphael - PullRequest
2 голосов
/ 30 января 2011

Как найти абсолютную позицию бумаги / холста при использовании библиотеки 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>

Как найти абсолютные координаты x и y листа в верхней части страницы, не зная идентификатора div, в котором он живет? (В этом примере я могу это знать, но из-за моей реальной ситуации знание идентификатора div намного сложнее.)

Ответы [ 3 ]

5 голосов
/ 30 января 2011

OK.Я вижу, что это должно быть сейчас:

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

Это, кажется, работает правильно как в IE 8.0, так и в Chrome 9.0.

1 голос
/ 15 сентября 2011

Чтобы получить абсолютную позицию вашей бумаги Рафаэля, вы можете использовать jQuery:

$(paper.canvas).offset()

0 голосов
/ 18 июня 2015

Принятое решение не работает для меня, оно дает мне x = -1 и y = -1, поэтому, если у кого-то есть такая же проблема, я решил ее следующим образом:

var x = paper.canvas.parentNode.offsetLeft;
var y = paper.canvas.parentNode.offsetTop;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...