[XML/SVG] zoom sur plusieurs éléments

cs_BARIS69330 Messages postés 9 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 4 juin 2010 - 4 juin 2010 à 14:40
cs_BARIS69330 Messages postés 9 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 4 juin 2010 - 4 juin 2010 à 23:40
Bonjour, je bosse actuellement sur du svg et il me faut faire un zoom sur plusieurs evenements quand je passe la souris dessus grâce aux fonctions onmouseover et onmouseout et aux evenements, j'ai deux fonctions, une qui est onmouseover=zoom(evt) et l'autre onmouseout=normal(evt)

j'ai actuellement ce code

<?xml version="1.0" encoding="ISO-8859-1"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

<script><![CDATA[

function zoom(evt)
{
        cible = evt.target.getAttributeNS(null , "id");
        var svgdoc = evt.target.ownerDocument;
        var obj = svgdoc.getElementById(cible);
svgdoc.getElementById(cible).setAttributeNS(null , "transform" , "matrix(2 0 0 2 ? ?)")
}

function normal(evt)
{
        cible = evt.target.getAttributeNS(null , "id");
        var svgdoc = evt.target.ownerDocument;
        var obj = svgdoc.getElementById(cible);
        svgdoc.getElementById(cible).setAttributeNS(null , "transform" , "matrix(1 0 0 1 ? ?)")
}
]]></script>

<g onmouseover="zoom(evt)" onmouseout="normal(evt)">

<rect id="rectangle0" x="0" y="0" width="140" height="190" stroke-width="1" stroke="black" fill="red" transform="matrix(1 0 0 1 300 50)" /></g>
<g onmouseover="zoom(evt)" onmouseout="normal(evt)">
<rect id="rectangle1" x="0" y="0" width="140" height="190" stroke-width="1" stroke="black" fill="red" transform="matrix(1 0 0 1 300 200)" /></g>
<g onmouseover="zoom(evt)" onmouseout="normal(evt)">
<rect id="rectangle2" x="0" y="0" width="140" height="190" stroke-width="1" stroke="black" fill="red" transform="matrix(1 0 0 1 300 400)" />

</g>

</svg>


j'y suis pas loin il me faudrait en fait récupérer les deux dernieres valeurs de transform="matrix(1 0 0 1 300 50)" par exemple pour les inserer dans les transform des deux fonctions, là où j'ai mis des " ? "

merci

4 réponses

cs_BARIS69330 Messages postés 9 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 4 juin 2010
4 juin 2010 à 17:28
merci !

je bosse sur un projet de dimensionnement de plaque à eau refroidisseur, et les rectangles sont les composants électroniques posés sur ces plaques. en faisant un zoom les différentes infos sur ces composants seront affichées
0
cs_BARIS69330 Messages postés 9 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 4 juin 2010
4 juin 2010 à 17:32
trompé de sujet pour ma réponse postée plus haut...
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
4 juin 2010 à 22:37
Bonjour,
1/ récupération de l'attribut transform
2/ récupération du tableau de chiffre
3/ en faire ce que l'on veut
//-- Recup de l'objet
var Obj = document.getElementById('RECT');
//-- RegExp pour les chiffres
var szReg  = new RegExp("[0-9]+","g");
//-- Recup de la valeur de l'attribut transform
var szAttrib = Obj.getAttribute('transform');
//-- Recup d'un tableau de valeur
var Tab = szAttrib.match( szReg);
//-- Affichage
alert( Tab);

A toi de jouer...

;O)
0
cs_BARIS69330 Messages postés 9 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 4 juin 2010
4 juin 2010 à 23:40
merci !
0
Rejoignez-nous