Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    44

    SVG: cambiare lo stile di un elemento via javascript

    Come da titolo, non riesco a cambiare lo stile di un elemento in un documento svg via javascript,
    qualcuno ha idea di come si faccia?

    Io stavo tentando nel modo standard (cioè come faccio in html)


    codice:
    ..
    <polygon id="5" points="190,25 190,80 255,80 255,25"  onmouseover="evidenzia(this)"/>
    ..
    codice:
    ...
    function evidenzia(element){
    	element.style="stroke:rgb(66,99,00);fill-opacity:0.1;";
            window.alert('Entrato!!!');
    }
    
    ..
    mi compare il popUp ma non avviene il cambiamento di stile.

    Per scrupolo ho provato anche così:

    codice:
    ..
    <polygon id="5" points="190,25 190,80 255,80 255,25"  onmouseover="evidenzia(5)"/>
    ..
    codice:
    ...
    function evidenzia(id){
    
            if ( window.svgDocument == null )
                 svgDocument = evt.target.ownerDocument;
    		
    	elementsvgDocument.getElementById(id);
    
    	element.style="stroke:rgb(66,99,00);fill-opacity:0.1;";
            window.alert('Entrato!!!');
    }
    
    ..
    ma il risultato è lo stesso.

    Forse nell'svg l'accesso al dom è leggermente diverso....
    idee?

    grazie.
    Giugallo

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    44
    ok!!!

    bisogna accedere agli attributi come in xml:

    codice:
    ...
    function evidenzia(element){
    	element.setAttribute("style","stroke:rgb(66,99,00);fill-opacity:0.1;");
    }
    ..
    l'unico problema che mi resta è che funziona con firefox, opera, safari.... ma indovinate chi manca?

    quella solita m. di IE

    Infatti con IE quando passo con il mouse sull'oggetto mi compare il popup con la scritta "Metodo o proprietà dell'oggetto non supportata..."

    Giugallo

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    44
    Risolto

    codice:
    ..
    <polygon id="5" points="190,25 190,80 255,80 255,25"  onmouseover="evidenzia(evt)"/>
    ..

    codice:
    ...
    function evidenzia(evt){
    	element=evt.target;
    	element.setAttribute("style","stroke:rgb(66,99,00);fill-opacity:0.1;");
    }
    ...
    Giugallo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.