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

como retrasar cierta funcion ?

Estas en el tema de como retrasar cierta funcion ? en el foro de Frameworks JS en Foros del Web. tengo una pequeña duda se puede hacer lo siguiente: tengo que cargar en 4 div cierto numeros de elementos que son 4 imagenes en la ...
  #1 (permalink)  
Antiguo 05/12/2012, 13:19
 
Fecha de Ingreso: agosto-2008
Ubicación: D,F
Mensajes: 412
Antigüedad: 15 años, 8 meses
Puntos: 4
como retrasar cierta funcion ?

tengo una pequeña duda se puede hacer lo siguiente:

tengo que cargar en 4 div cierto numeros de elementos que son 4 imagenes en la cual todo eso funciona por medio de un $.hover() todos los elementos se cargan bien, pero mi pidieron algo en especial que se hiciera todo el procedimiento despues de 2 segundos de que esta el cursor este en el elemento para que cargue las 4 imagenes , como puedo retrasar toda la funcion que hago .

dejo parte de mi codigo
Código jquery:
Ver original
  1. $("#link-videos").hover(function(){
  2.  
  3.             tipo=$("#caos-grid").attr("class");
  4.             if(tipo != "video"){
  5.                 $("#caos-grid").attr("class","video");
  6.                 tipo=$("#caos-grid").attr("class");
  7.                 cambio_color(tipo);
  8.             }
  9.         });
  10.  
  11.  
  12. function cambio_color(tipo){
  13.         //$("#caos-grid div a").remove()
  14.         $("#caos-grid").fadeOut(1000, function(){
  15.             switch(tipo){
  16.                 case "video":
  17.                     tipo_contenido = "video";
  18.                     //sessionStorage.getItem("proyector_video")
  19.                     //if(sessionStorage.getItem("proyector_video"))
  20.                     proyector(tipo_contenido);
  21.                     $("#caos-grid").delay(500).fadeIn(1000);
  22.                     break;
  23.  
  24.                 case "foto":
  25.                     tipo_contenido = "foto";
  26.                     proyector(tipo_contenido);
  27.                     $("#caos-grid").delay(500).fadeIn(1000);
  28.                     break;
  29.  
  30.                 case "juegos":
  31.                     tipo_contenido = "juego";
  32.                     proyector(tipo_contenido);
  33.                     $(".juegos div a").css("opacity"," 0.6");
  34.                     $("#caos-grid").delay(500).fadeIn(1000);
  35.                     break;
  36.  
  37.                 case "actividades":
  38.                     tipo_contenido = "descarga";
  39.                     proyector(tipo_contenido);
  40.                     $(".juegos div a").css("opacity"," 0.6");
  41.                     $("#caos-grid").delay(500).fadeIn(1000);
  42.                     break;
  43.             }
  44.         });
  45.     }  
  46.  
  47.  
  48. function proyector(args_content){
  49.         var login_storage = new Object();
  50.         if(JSON.parse(localStorage.getItem('login_avatar')) != null){
  51.             login_storage = JSON.parse(localStorage.getItem('login_avatar'));
  52.         }else{
  53.             login_storage.tipo_mundo =  "";
  54.         }
  55.         $.ajax({
  56.             async: true,
  57.             url: 'ruta del archivo php',
  58.             type: "POST",
  59.             data: {
  60.                 tipo_contenido : args_content,
  61.                 tipo_mundo : login_storage.tipo_mundo
  62.             },
  63.             success: function(data){
  64.                 array=data.split('|');
  65.                 url=0
  66.                 imagen=1
  67.                 x=1;
  68.                 y=1;
  69.                 for(var i=0; i<=3;i++){                    
  70.                     //$("#caos-grid div").prepend("<a href='#' id=grid"+x+"x"+y+" style='background:url("+array[i]+") no-repeat; background-size: 210px 135px;'></a>")
  71.                     $("#caos-grid div a:eq("+i+")").attr({id:"grid"+x+"x"+y+"",
  72.                         style:"background:url("+array[imagen]+") no-repeat; opacity: 0.5; background-size: 210px 135px; height:135px;",
  73.                         href:""+array[url]+""})
  74.                     //background-size: 193px 131px; width: 193px; height: 131px;
  75.                     $("#grid2x1").css({left:"7px", width:"210px"});
  76.                     $("#grid1x1").css({top:"-10px"});
  77.                     $("#grid1x2").css({right:"-19px",top:"-10px"});
  78.                     $("#grid2x2").css({width:"210px",
  79.                         height:"135px",
  80.                         right:"-19px"});
  81.                     url=url+2;
  82.                     imagen=imagen+2;
  83.                     if(y==2){
  84.                         x=x+1;
  85.                         y=1;
  86.                     }else{
  87.                         y=y+1;         
  88.                     }
  89.                 }
  90.             }
  91.         });
  92.     }
__________________
Si el amor a una mujer es igual al amor a la programacion
cual de las dos escojerias...mmmm buena pregunta jejeje
  #2 (permalink)  
Antiguo 05/12/2012, 13:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: como retrasar cierta funcion ?

yo preferiría hacer un pre-loader de las imágenes y no limitar la respuesta del hover ¿no te parece mejor?

de igual forma lo que quieres lo consigues de 2 formas:

-con un setTimeout
-con el evento onLoad de los IMG
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 06/12/2012 a las 08:40 Razón: me comí la "r" O.o
  #3 (permalink)  
Antiguo 05/12/2012, 15:15
 
Fecha de Ingreso: agosto-2008
Ubicación: D,F
Mensajes: 412
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: como retrasar cierta funcion ?

me late tu idea maycolalvarez del pre-loader pero quieres que sea obligatorio el tiempo de 2 segundos para hacer la función que esta adentro del over

y en caso de ser el pre-loader como lo hago?
__________________
Si el amor a una mujer es igual al amor a la programacion
cual de las dos escojerias...mmmm buena pregunta jejeje
  #4 (permalink)  
Antiguo 06/12/2012, 08:41
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: como retrasar cierta funcion ?

tan simple como colocar las imágenes en unos img ocultos, usar sprites, o usando script de preloaders que puedes conseguir
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: ajax, funcion, js, php
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 15:06.