Wie kann ich die Koordinaten eines gerenderten Canvas Elements erhalten? Ich brauche sie, um clearRect, fillRect usw. in ihrem Bereich anzuwenden.Wie kann man Coords (x, y, w, h) eines gerenderten Canvas-Elements abrufen?
Ich erhalte die Leinwand:
//html
<div><canvas id="canvas_id">some useless text..</canvas></div>
//javascript
var ctx = document.getElementById('canvas_id').getContext('2d');
dann? gibt es eine Möglichkeit, oben links x, oben links y, Breite und Höhe davon zu bekommen?
@update nach Moonshadow ‚s Antwort:
thx für Antwort, ich weiß, dass Operationen auf die Leinwand bezogen sind, aber ich die Frage gestellt, weil ich mir dieses Verhalten nicht erklären: Ich habe getan, eine Testdatei mit einem Canvas-Objekt (http://avastreg.ilbello.com/canvas/test.html).
Hier habe ich ein Formular, in dem Dimensionen für clearRect über das Formular gesendet werden können. Wenn Sie mouseover auf der Zeichenfläche (NEWS) auslösen, wendet es clearRect mit diesen Koordinaten an. Bei Mouseout füllt er nach.
Startwert sind:
x = 0, y = 0, w = 200, h = 200
. Beachten Sie, dass das nicht funktioniert.
Dann versuchen Sie so etwas wie
x: -10000, y: -10000, w: 50000000, h: 50000000
=> es scheint ein Witz, aber das funktioniert!
Mit anderen Werten wird es teilweise gelöscht. Warum passiert das?
thx für die Antwort, vielleicht können Sie mein Problem lösen: Überprüfen Sie die aktualisierte Frage (ich aktualisierte directy es, weil es so mehr sichtbar ist) – apelliciari
Ihr NEWS-Text scheint ein Kind der Leinwand zu sein, und Sie versuchen zu verwenden die Zeichenoperationen, um es zu beeinflussen. Tun Sie das nicht, das Verhalten ist nicht definiert; Leinwand sollte nie Kinder haben. Zeichnen Sie den Text entweder in den Canvas oder überlagern Sie den absoluten Text mit einer undurchsichtigen Leinwand über dem Text. – moonshadow
danke ich wusste es nicht! Morgen werde ich versuchen, das zu beheben! – apelliciari