Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2016, 16:37
lobopk2
 
Fecha de Ingreso: diciembre-2015
Mensajes: 62
Antigüedad: 9 años
Puntos: 0
Transicion en svg no funciona bien

El asunto que estoy intentando hacer un efecto de transicion para un menu, que sea mas suavizado al abrirse, pero me parece imposible hacer nada.

Estoy intentando con lo mas basico para ver si sale algo.

tengo esto en el codigo html
Código HTML:
Ver original
  1. <!--Empieza el Grupo rojo-->                            <g id="Rojo">        
  2. <!--Rectangulo Rojo-->            <g
  3.          id="rojo">
  4.         <rect
  5.           y="446.45499"
  6.           x="370.62024"
  7.           height="32.067509"
  8.           width="151.89873"
  9.          
  10.           style="opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
  11.         <text
  12.           xml:space="preserve"
  13.           style="font-style:normal;font-weight:normal;font-size:31.49108315px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
  14.           x="434.04651"
  15.           y="474.16333"
  16.           id="text4726"><tspan
  17.             style="stroke:none"
  18.             x="434.04651"
  19.             y="474.16333"
  20.             id="tspan4730">1</tspan></text>
  21.       </g>
  22. <!--Acaba el rectangulo rojo-->  
  23.  
  24.      
  25.        
  26. <!--Empieza el grupo azul-->     
  27.                             <g id="Azul">                          
  28. <!--uno-->            <rect
  29.       class="azul"
  30.         y="479.52249"
  31.         x="370.62024"
  32.         height="32.067509"
  33.         width="151.89873"
  34.         id="unoz0"
  35.         style="opacity:1;fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
  36. <!--dos-->            <g
  37.         id="dosz0" class="azul" >
  38.          
  39.         <rect
  40.        
  41.           y="512.59003"
  42.           x="370.62024"
  43.           height="32.067509"
  44.           width="151.89873"
  45.           id="dos"
  46.           style="opacity:1;fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
  47.         <text
  48.           xml:space="preserve"
  49.           style="font-style:normal;font-weight:normal;font-size:27.25960541px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
  50.           x="437.71823"
  51.           y="538.28668"
  52.           id="text4734"><tspan
  53.             style="stroke:none"
  54.             id="tspan4736"
  55.             x="437.71823"
  56.             y="538.28668">2</tspan></text>
  57.       </g>
  58. <!--tres-->               <rect
  59.       class="azul"
  60.         y="545.65753"
  61.         x="370.62024"
  62.         height="32.067509"
  63.         width="151.89873"
  64.         id="tresz0"
  65.         style="opacity:1;fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1">
  66.         <title
  67.           >azul</title>
  68.       </rect>    
  69.      
  70. <!--Termina el grupo azul-->                            </g>                           
  71.                            
  72.                            
  73.      
  74. <!--Termina el grupo Rojo-->                </g>

Todo lo que estoy viendo lo hacen con etiquetas <div> pero en svg usa la <g> como grupo, me imagino que es lo mismo, de todas maneras cambie la etiqueta g por div y tampoco me sale.

en el css tengo esto
Código CSS:
Ver original
  1. .azul               {display:none;}
  2. #Rojo:hover .azul   {display:block;}
  3.  
  4.  
  5. /*Le he puesto al grupo Azul una altura y no hace nada, para empezar esto ya me falla*/
  6. .Azul               {height:1000px !important;}
  7.  
  8.  
  9.  
  10.  
  11. /*Asi seria segun una pagina que he visto*/
  12. #Rojo .Azul{
  13.     height:1000px !important;
  14.     -webkit-transition: all 3s;
  15.     -o-transition: all 3s;
  16.     transition: all 3s;
  17. }
  18. #Rojo:hover {
  19.     height: 2000px!important;
  20. }
  21.  
  22. /*No funciona nada*/

De momento quiero ver si sale algo aunque sea lo mas simple, pero tambien me lio un poco.

Estas intrucciones del css, las he sacado de un ejemplo de internet:
Código HTML:
Ver original
  1. <div class="TRA_CONT">
  2. <div> <!-- Este DIV es el que se mueve -->
  3. </div>
  4. </div>
Código CSS:
Ver original
  1. /* Este estilo es el del DIV que esta dentro de div.TRA_CONT */
  2. .TRA_CONT div{
  3. width:10%;
  4. height:80px;
  5. margin-left:0%;
  6. background:#0F0;
  7. -webkit-transition:all 1s ease;
  8. -moz-transition:all 1s ease;
  9. -o-transition:all 1s ease;
  10. transition:all 1s ease;
  11. }
  12.  
  13. /* Estilo que se aplica al pasar por encima de la DIV con clase TRA */
  14. .TRA_CONT:hover div{
  15. width:20%;
  16. margin-left:80%;
  17. background:#F00;
  18. }

bueno yo he cambiado como dije los div por las g, asi que algo deveria hacer, pero nada.
Y segui este consejo, porque al intentar hacerla transicion con el Dreamweaver CC, me diante la ventana transiciones css, solo me deja actuar sobre un elemento. Quiero decir con esto que es algo asi como, si estoy en el Rojo el rojo hace algo.

La otra instruccion de muestra de la pagina me parecio buena, porque me da a entender que dice algo asi, si estas en un div, haz esto otro en el otro div, esto es en verdad lo que queria hacer. Aunque lo que me extraño que el Dreamweaver, no me diera como esta opcion, asi que me confunde todo.
Por eso he echo ahi una mezcla diabolica creo yo.

Me podria alguien orientar sobre cual es el error? he leido bastantes cosas, pero creo que me lio.
Dire tambien que en una pagina creo que decian que era incompatible usar el display:none, pero no se si eso ha cambiado o que? tambien dire que ni usando el display:visible funciona.

Bueno a ver si esto con vuestra ayuda puedo sacarlo adelante, porque me estoy mareando con este asunto, que deveria ser facil por lo que leo, pero en mi caso es imposible. :(