Je veux obtenir la getbox () pour le chemin SVG à JQuery. J'ai essayé comme ça J'ai ajouté le chemin d'un élément SVG. J'ai essayé un autre élément de SVG, par exemple un nœud de texte dans ce cas, il renvoie la valeur de la boîte de sélection de la bordure. P> Comment puis-je calculer la boîte de sélection d'un chemin dans SVG? P> <path id="container_svg_John_0" fill="none" stroke-width="3" stroke="url(#container_svg_John0Gradient)" stroke-linecap="butt" stroke-linejoin="round" d="M -2390.2 -125.8888888888889 L 0 0 M 0 0 L 251.60000000000002 -45.77777777777778 M 251.60000000000002 -45.77777777777778 L 503.20000000000005 -11.444444444444445 M 503.20000000000005 -11.444444444444445 L 629 -183.11111111111111 "/>
5 Réponses :
getbox est une méthode svg natif et ne fait pas partie de jQuery, vous devez donc écrire exemple p> Si vous obtenez une valeur non nulle pour l'exemple et une valeur zéro dans votre code, il doit y avoir autre chose que vous" nous ne nous a pas montré. p> Les causes les plus susceptibles sont que le chemin est un enfant de
C'était une mauvaise solution / réponse. Je sais déjà cela et aussi essayé comme ça, mais cela revient toujours zéro.
Auquel cas, il retournera la valeur "0". J'ai essayé pour un élément rectoculé aussi mais cela renvoie "zéro" uniquement dans tous les navigateurs.
Si je clique sur le lien "Exemple" dans la réponse que j'ai donnée ci-dessus à l'aide de Firefox I Get -2390. Dites-vous que vous utilisez Firefox et en cliquant sur le lien que vous obtenez 0?
Pour moi, cela retourne également "-2390" dans tous les navigateurs. Mais dans mon projet, je débrouge la valeur de la durée de son retour "zéro", j'ai également ajouté cela à l'objet SVG. Je ne connais pas la cause exacte? Puis-je savoir auquel cas il renvoie "zéro"
Il retournerait 0 si le rect / chemin avait un style d'affichage: Aucun ou n'était un enfant de
Je veux obtenir le rectangle ou la boîte pour le chemin SVG groupé. Veuillez vous référer ci-dessous jsfiddle. jsfiddle.net/gfjyc
Fonctionne pour moi sur Firefox I.e. N'affiche pas 0 lorsque j'ai modifié le Jsfiddle pour utiliser JQuery 1.9.1 (sélectionnez Dropdown en haut à gauche).
Une solution consiste à utiliser une bibliothèque SVG qui possède ses propres algorithmes pour calculer de telles questions, l'une d'elles est Raphael.js . P>
Vous pouvez utiliser em> em> the getbox () code> implémentation native en webkit est buggy, vous pouvez trouver le suivi de bogues ici s>. En fait, il est
element.getbbox () code>
, qui fait la même chose que l'indigène getbox () code>. p>
En fait, Cela ne fonctionne pas sur Chrome . Le Sample Là montre le problème et les différences entre le courant Version chromée (45) et la plus récente IE / FF.
Chrome est correct maintenant - la divergence dans l'échantillon affiché dans le commentaire ci-dessus est due à la largeur de course.
Moi aussi j'ai du mal à faire travailler la syntaxe de jQuery pour moi. Ceci renvoyé non capturé typeError: objet [objet objet] n'a pas de méthode 'getbox' forte>: ... parce que j'avais omis l'index de la matrice (mercifristian Vielma , ci-dessous)! P> Cependant, JavaScript standard a fonctionné pour moi et j'ai pu afficher la largeur du rect (dans mes cas) dans la console chrome: p> Pour que vous puissiez essayer cela à la place. P> p>
Je crois que vous devez utiliser $ ('# testtext') [0] .getbbox (). Largeur
Juste pour clarifier, $ ('# testtext') [0] code> ( jQuery () ) et
document.getelementByID ("testtext") code> renvoie un objet Element DOM, qui prend ensuite en charge de manière native
getbox (). largeur code> sur code> sur < Un href = "https://developer.mozilla.org/en-us/docs/web/api/svggraphicsElement" rel = "Nofollow Noreferrer"> SVG Eléments
try element.getboundingClientRect (). Il provient de la DOM HTML, mais travaille pour moi sur les éléments SVG (sans grande transformation). P>
Une chose pour vous assurer que votre SVG est ajouté à la DOM et non détachée. Assurez-vous également que votre élément SVG P>
Peut-être que vous pouvez trouver une inspiration dans cet utilitaire simple qui vous permet de saisir un chemin puis d'afficher la boîte de sélection. Codepen.io/Netsi1964/full/vnoemp