Comment puis-je obtenir la position d'un objet dans Raphael? Je peux obtenir la taille en utilisant getBBox(), mais il semble y avoir aucun moyen d'obtenir la position?Raphael Position
Répondre
En fonction du type de forme, la documentation semble indiquer qu'il est possible d'y accéder à l'aide de la fonction .attr()
. Donc, si c'est un cercle ...
var x = myCircle.attr('cx'); //cx is the center-x-coordinate of the circle
var y = myCircle.attr('cy'); //same, for y
var r = myCircle.attr('r'); //Radius of circle.
Un carré aurait attr
s de x, y, largeur, hauteur. Consultez la documentation pour plus d'informations. GetBBox() devrait vous donner la position ainsi que les propriétés x et y.
el.getBBox est la bonne approche. S'il vous plaît voir la réponse de Dmitry. – jbeard4
var bbox = el.getBBox();
alert([bbox.x, bbox.y]);
merci mais ce serait génial si vous pouviez ajouter ces conseils dans la documentation de raphaeljs. – Mermoz
Il se trouve dans la documentation de Raphael –
vous pouvez également accéder aux valeurs x et y de cette façon:
var x = myCircle.attrs.x;
var y = myCircle.attrs.y
getBBox() retourne un objet avec 5 propriétés. ils sont:
- x
- y
- largeur
- hauteur
- toString()
si vous définissez getBBox (false) il renverra les données de coordonnées pour la position de l'objet APRES une transformation. mettre à getBBox (true) pour retourner les coordonnées de l'objet avant la transformation
utilisation comme ça ...
paper.Raphael(10,10,300,300);
circle.paper(30, 55, 15);
var circleBBox = circle.getBBox(false);
edit: viens de télécharger R 2.1 et je crois qu'il a ajouté x2 et y2 à la propriétés renvoyées par getBBox()
Les attributs x, y sont ceux de l'ensemble. Le problème ici est que si l'ensemble est traduit ailleurs, les x et y donnés par .getBBOx() ne tiennent pas compte de la traduction.
Raphael.transformPath (chemin, Transform) peut aider en appliquant la même que l'ensemble transforme a ...
pour traduire ce point, vous pouvez:
tp = Raphael.transformPath("M"+x+","+y, set.attr('transform'))
x = tp[0][1]
y = tp[0][2]
- 1. Raphael JS - animate .text()
- 2. Animation: jQuery ou Raphael?
- 3. cible iframe Raphael Js
- 4. Raphael commander des objets
- 5. Relier Raphael avec Rails
- 6. Raphael JS Question
- 7. Inkscape moveCo coords loin dans Raphael
- 8. Comment modifier le texte raphael?
- 9. Gérer l'entrée utilisateur avec Raphael
- 10. Utilisation de JQuery avec Raphael
- 11. Nidification des décors de Raphaël dans Raphael décors pour la bibliothèque javascript Raphael
- 12. Pourquoi Raphael utilise-t-il l'objet [apply]?
- 13. Comment savoir si l'objet raphael est caché?
- 14. Comment créer un objet gradient avec Raphael
- 15. glisser-déposer à l'aide Raphael js
- 16. Obtention d'informations à partir d'un objet Raphael
- 17. Liens textuels utilisant Raphael dans IE8
- 18. Utilisation de Raphael JS pour créer des nœuds de texte
- 19. Peindre la bordure arrondie autour de l'image en utilisant Raphael
- 20. Convertir Raphael SVG à l'image côté client (.png etc)
- 21. En utilisant setAttribute avec un tableau de chemins Raphael
- 22. Pourquoi ma boucle d'animation Raphael JS ne va pas?
- 23. Pourquoi le framerate de Raphael ralentit-il sur ce code?
- 24. Raphael JS - Analyser un SVG à la volée
- 25. comment appeler les méthodes raphael sur des objets jquery?
- 26. Prise en charge de la bibliothèque Javascript Raphael dans NetBeans
- 27. Création d'un chemin/Imagemap à partir d'un fichier PNG transparent avec Raphael JS
- 28. position: relative apparaissant sur la position: absolue
- 29. TSaveDialog position
- 30. Position StackPanel
Le problème peut être d'abord une définition de "position" d'un objet. Si vous voulez dire le "centre de gravité" de l'objet, cela doit être calculé par le code de l'application car cela dépend du type d'objet. À l'heure actuelle, il semble qu'il n'y ait pas de code de bibliothèque pour obtenir le centre des formes communes. Pour des formes arbitraires, je suppose qu'il est peut-être nécessaire de le définir au niveau de l'application, et la boîte englobante permet de le calculer. Si, par position, vous voulez dire la position classique du coin supérieur gauche, les attributs (x, y) de la boîte englobante sont le résultat, comme mentionné dans @b_dubb. –