Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Mootools Fx.Slide multiple. Ayuda plss

Estas en el tema de Mootools Fx.Slide multiple. Ayuda plss en el foro de Frameworks JS en Foros del Web. Hola, resulta que antes usaba jquery pero quiero cambiarme a mootools porque lo veo mas completo y bueno, realmente soy novato xD pero me da ...
  #1 (permalink)  
Antiguo 09/06/2009, 07:01
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 15 años, 8 meses
Puntos: 3
Mootools Fx.Slide multiple. Ayuda plss

Hola, resulta que antes usaba jquery pero quiero cambiarme a mootools porque lo veo mas completo y bueno, realmente soy novato xD pero me da mejor impresion el de la vaca.
Asi que a ver si me ayudais.

Código PHP:
<!-- SCRIPTSss -->
<script type="text/javascript">
window.addEvent('domready', function() {
    var Addentrada= new Fx.Slide('Fentradas');
    Addentrada.hide();
    $('Aentradas').addEvent('click', function (e) {
        e = new Event(e);
        Addentrada.toggle();
        e.stop();
    });
    var Plegable1=$$('.plegableM2');
    for(i=0;i<Plegable1.length;i++) {
    Plegable11[i]=new Fx.Slide(Plegable1[i]);
    Plegable11[i].hide();
    }
});
</script>
<!-- FIN SCRIPTSss -->

<div class="titulos">Mensajes Recibidos   <img height="14" src="<? echo $IMGs;?>flechadown.gif">  <img height="14" src="<? echo $IMGs;?>flechatop.gif"></div>
<TABLE id="Mrecibidos">
<? while($DmensajesR=mysql_fetch_array($CmensajesR)) {
if (
$DmensajesR['Eliminado2']=="0") {
echo 
'
<tr class="plegableM1">
<th>Asunto: '
,$DmensajesR['Asunto'],'</th>
<th style="font-size: 9px; width: 120px;">'
,fecha($DmensajesR['Fecha']),'</th>
</tr>
<tr>
<th><div class="plegableM2">Recibido De: '
,anombre($DmensajesR['ID_usu1']),'</div></th>
<th><div class="plegableM2"><a href="funciones/Borrado.php?mpR='
,$DmensajesR['ID'],'" title="Borrar este Mensaje"> <img src="imgs/iconos/delete.png"> </a></div></th>
</tr>
<tr><td colspan="2"><div class="plegableM2">'
,filtros($DmensajesR['Contenido']),'</div></td></tr>
<tr></tr>'
;
}
?>
</TABLE><br><br>
La primera parte del javascript es para otra que si me funciona bien, es un simple slide.
El problema llega con los 2º

Como vereis en el codigo siguiente, lo que quiero es cargada la pagina lo que salga sea la celda donde pone el asunto y la fecha en cada mensaje. Al hacer click en estas 2 celdas (tr) pues que se expandan las 2 tr que siguen a cada 1tr

Al cargar todas las TRs de una clase se tienen que hide() xD y luego que haya un toggle con cada una. NO que haciendo click en una se expandan todas...

Ojala me entiendan xD gracias
  #2 (permalink)  
Antiguo 09/06/2009, 07:59
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 10 meses
Puntos: 57
Respuesta: Mootools Fx.Slide multiple. Ayuda plss

Primero:
Código:
var Addentrada= new Fx.Slide('Fentradas');
Para crear un objecto Fx.Slide le debes pasar como parametro el elemento al que quieres aplicar el efecto y segun el codigo que pusiste Fentradas no existe. (Creo que esta es la parte que dices que si te funciona y por eso no pusiste el HTML)

Código:
    $('Aentradas').addEvent('click', function (e) {
        e = new Event(e);
        Addentrada.toggle();
        e.stop();
    });
Al ejecutarse el evento onClick, ya le estas enviando el objeto Event como parametro. Ya no es necesario crearlo dentro de la funcion.

Y como sugerencia, si ya estas usando mootools, tambien puedes hacer uso de each para recorrer un arreglo:

esto:
Código:
var Plegable1=$$('.plegableM2');
for(i=0;i<Plegable1.length;i++) {
Plegable11[i]=new Fx.Slide(Plegable1[i]);
Plegable11[i].hide();
podria quedar como esto:
Código:
var Plegable1=$$('.plegableM2');
Plegable1.each( function(elemento,indice) {
     Plegable11[indice]=new Fx.Slide(elemento);
     Plegable11[indice].hide();
});
  #3 (permalink)  
Antiguo 09/06/2009, 08:43
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Mootools Fx.Slide multiple. Ayuda plss

Ok, muchas gracias por lo consejos.
Lo del event me extrañé pero es que en la web de mootools en los ejemplos viene así O_o

var Plegable1=$$('.plegableM2');
Plegable1.each( function(elemento,indice) {
Plegable11[indice]=new Fx.Slide(elemento);
Plegable11[indice].hide();
});

Eso no me funciona, y entenderlo entiendo como deberia de ser, pero me parece un poco raro

Última edición por manumar; 09/06/2009 a las 09:20
  #4 (permalink)  
Antiguo 10/06/2009, 07:47
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Mootools Fx.Slide multiple. Ayuda plss

Y bien? nadita??
  #5 (permalink)  
Antiguo 10/06/2009, 07:57
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 10 meses
Puntos: 57
Respuesta: Mootools Fx.Slide multiple. Ayuda plss

Encontre algunos links

fx.slide table rows
Fx.Slide and a group of rows in a table?

Son links del cache de google porque si doy click en el link me aparece que el foro de mootools ya no existe.

Por si te interesa, en google busque mootools fx.slide rows
  #6 (permalink)  
Antiguo 10/06/2009, 08:46
 
Fecha de Ingreso: marzo-2009
Ubicación: yokze
Mensajes: 177
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Mootools Fx.Slide multiple. Ayuda plss

Gracias, lo que encontré fue esto, que creo que es mas o menos lo que busco:
Código PHP:
window.addEvent('domready', function () {
 
      
/* make sliding segments */
      
var infoslide = new Object();
      $$(
'.infodiv').each(function (infodiv) {
        
infoslide[infodiv.id] = new Fx.Slide(infodiv.id, { duration 500 onComplete : function () { 
          if (
this.is_toggled) {
            
this.is_toggled false;
          } else {
            
this.is_toggled true;
          }
        }});
        
infoslide[infodiv.id].hide();
      });
      $$(
'td.name, td.twisty').addEvent('click', function (e) {
        var 
infodiv this.getParent().getNext().getFirst().getFirst().getFirst();
        
= new Event(e);
        if (
infoslide[infodiv.id].is_toggled) {
          
infoslide[infodiv.id].options.transition Fx.Transitions['Back']['easeIn'];
          
this.getParent().getFirst().setStyle('background-image''url(twistyplus.gif)');
        } else {
          
infoslide[infodiv.id].options.transition Fx.Transitions['Back']['easeOut'];
          
this.getParent().getFirst().setStyle('background-image''url(twistyminus.gif)');
        }
        
infoslide[infodiv.id].toggle();
        
e.stop();
      });
    }); 
Ahora me pondré a analizarlo bien xD
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:20.