Foros del Web » Programando para Internet » Javascript »

efecto creditos

Estas en el tema de efecto creditos en el foro de Javascript en Foros del Web. Hola a todos, el titulo es lo que realmente quiero conseguir, aunque lo voy a explicar un poco. tengo que mostrar unos datos, estos datos ...
  #1 (permalink)  
Antiguo 14/08/2016, 17:41
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 10 meses
Puntos: 1
efecto creditos

Hola a todos, el titulo es lo que realmente quiero conseguir, aunque lo voy a explicar un poco.

tengo que mostrar unos datos, estos datos han sido generados y recogidos con php, se los he pasado a un array en javascript, hasta ahí todo bien, los puedo mostrar dentro de un div, pero lo que quiero es mostrarlos con unos efectos en css, así que en el div y con un archivo .css consigo los efectos para el array, pero lo que hace es mostrar todo el array entero y le da el efecto, y lo que yo quiero es dar el efecto al primer elemento del array, una vez terminado el efecto, mostrar el segundo y darle el efecto, y así con todo el array.

He probado con la función setInterval y seTtimeout, pero nada, los muestra todos de golpe y realiza el efecto a todos juntos.

Para mostrar los datos recorro el array con un bucle for en javascript, y dentro del for he metido la funcion setTimeout pasandole el array y el indice del for, le he dado hasta 100000 milisegundos de retardo, pero salen todos de golpe.



Código Javascript:
Ver original
  1. <div class="animated bounce">
  2.     <script>
  3.    
  4.     function funciona( numero)
  5.     {
  6.         document.write(batalla[numero]+"\n");
  7.     }
  8.    
  9.    
  10.    
  11.     for (i=0;i<batalla.length;i++)
  12.     {
  13.        
  14.         setTimeout(funciona(i), 100000);
  15.        
  16.     }
  17.    
  18.        
  19.        
  20.  
  21.  
  22.     </script>
  23.     </div>

Se que el efecto es en css, y tengo una buena colección de efectos para css, pero lo dicho, lo que quiero es que a cada segundo me aparezca un elemento del array y con css le de el efecto.

gracias de antemano.
  #2 (permalink)  
Antiguo 14/08/2016, 17:53
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: efecto creditos

ni idea como tienes todo hecho pero podrias hacer una recursividad:

Código Javascript:
Ver original
  1. function funciona(num){
  2. alert(num);
  3. num++;
  4. setTimeout("funciona('"+num+"')",10000);
  5. }

Ve como andas con eso
  #3 (permalink)  
Antiguo 14/08/2016, 18:13
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: efecto creditos

Gracias por responder, he añadido al código el inicializador de la variable num, poniendolo a cero para que recorra el array, y he sustituido el alert por el document.write, y ni funciona, la verdad que no sabría en el ejemplo luego como me las arreglaría para romper la funcion cuando el array se hubiese completado.

Los ejemplos con alert sirven para ver si el código chuta, pero para mi ejemplo en particular sirve de poco, ya que funcionar mi código y las mil y una versiones que he intentado, funcionan perfectamente con alert y con document.write, el problema es que no lo hace con los tiempos y como yo quiero que funcione.

Repasando conceptos: lo primero que se ejecuta es php en el servidor, manda el resultado al cliente, a su navegador, siendo primero las cabeceras, el navegador ejecuta primero el código javascript y seguidamente muestra los resultados, por eso me muestra todo de golpe. Luego la función setTimeout, supongo que será que no sirve en este ejemplo, así que creo que la solución estará más encaminada a css o jquery, que coja el array y lo muestre con los efectos que sean. Estoy buscando efectos de banner aleatorios para adaptar ese código y que en vez de mostrar una imagen cada x´s tiempo, que muestre un elemento del array cada x´s tiempo.
  #4 (permalink)  
Antiguo 14/08/2016, 19:05
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: efecto creditos

Mira si no muestras nada, no puedo adivinar. en cuanto a parar es fácil comparas donde vas con el largo del arreglo y detienes...

por otro lado con document.write no vas a conseguir lo que deseas.

Los conceptos me los se relax ;)

Te dejo un ejemplo para lo que quieres, más directo con ejemplo no puedo ser:

Código HTML:
Ver original
  1.     <head>
  2.         <script type="text/javascript">
  3.        
  4.         function funciona(num){
  5.         var arr = ["Escritor: Juanito", "Protagonista: Diego", "Productor: Pepe", "Editor: Andres"];
  6.         var el = document.getElementById("creditos");
  7.             if(num < arr.length){
  8.             el.innerHTML = arr[num];
  9.             num++;
  10.             setTimeout("funciona("+num+")", 2000);
  11.             }
  12.             else{
  13.             el.innerHTML = "THE END...";
  14.             }
  15.         }
  16.         </script>
  17.     </head>
  18.     <body onload="setTimeout('funciona(0)',2000);">
  19.         <p id="creditos">Los Creditos...</p>
  20.     </body>
  21. </html>

EDITÉ!!!

Saludos

Última edición por alvaro_trewhela; 14/08/2016 a las 19:14
  #5 (permalink)  
Antiguo 14/08/2016, 19:21
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: efecto creditos

Gracias, esto si que me convence, voy a modificar para adaptarlo.


Perdón por lo de los conceptos, pero no era hacia ti, sino más bien como reflexión, ya que algo se me escapaba, no obstante disculpa y gracias, ya te contaré como me ha ido, y colgare el resultado.
  #6 (permalink)  
Antiguo 15/08/2016, 10:07
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: efecto creditos

Buenísimo, me cuentas...

  #7 (permalink)  
Antiguo 15/08/2016, 12:53
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: efecto creditos

en este caso no sería mas conveniente usar el método seInterval()??
Cita:
(function fnc(n){
var arr = [1,2,3,4,5];

console.log(arr[n]);

window.setInterval(function() {

console.log(arr[++n % arr.length]);

}, 2000);

})(0);
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #8 (permalink)  
Antiguo 15/08/2016, 13:11
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: efecto creditos

Cita:
Iniciado por IsaBelM Ver Mensaje
en este caso no sería mas conveniente usar el método seInterval()??
También... de hecho no se por qué me fuí por esa opción.

Etiquetas: creditos, css, efectos
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 10:48.