Foros del Web » Programando para Internet » Javascript »

ocultar div al detener desplazamiento

Estas en el tema de ocultar div al detener desplazamiento en el foro de Javascript en Foros del Web. No consigo ocultar un div al parar el desplazamiento pero ocultarlo al pasar un segundo hice algo asi: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original ...
  #1 (permalink)  
Antiguo 10/04/2015, 04:46
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
ocultar div al detener desplazamiento

No consigo ocultar un div al parar el desplazamiento pero ocultarlo al pasar un segundo hice algo asi:

Código Javascript:
Ver original
  1. var timer=null;
  2. window.addEventListener("scroll", function(){
  3.     var div=document.getElementById("capa");   
  4.        if(timer !== null) {
  5.          clearTimeout(timer);      
  6.        }
  7.        timer = setTimeout(function(){
  8.          if(div.style.display=="block"){
  9.         div.style.display="none";
  10.         }
  11.    
  12.        }, 150);
  13. });

funciona bien pero no sin el retraso de un segundo.
saludos

Perdon, me equvoque queria ponerlo en el foro de javascript.

Última edición por pithon; 10/04/2015 a las 05:04
  #2 (permalink)  
Antiguo 10/04/2015, 09:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ocultar div al detener desplazamiento

Puedes hacerlo de dos formas.

Por el valor computado de la propiedad display:
Código Javascript:
Ver original
  1. if (getComputedStyle(div).display == "block"){
  2.     //Instrucciones
  3. }

O por su ancho o alto, ya que cuando un elemento está oculto, sus medidas son iguales a cero:
Código Javascript:
Ver original
  1. //Por su ancho
  2. if (div.offsetWidth > 0){ //O simplemente if (div.offsetWidth)
  3.     //Instrucciones
  4. }
  5.  
  6. //Por su alto
  7. if (div.offsetHeight > 0){ //O simplemente if (div.offsetHeight)
  8.     //Instrucciones
  9. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 10/04/2015, 12:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: ocultar div al detener desplazamiento

Hola gracias, pero como lo retraso 1 segundo antes de ocultarlo probé igual setTimeout pero no siempre funciona.
Un saludo.
  #4 (permalink)  
Antiguo 10/04/2015, 12:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ocultar div al detener desplazamiento

Pues qué raro porque lo probé con el retraso de un segundo y sí funciona.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 10/04/2015, 13:35
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: ocultar div al detener desplazamiento

Lo he hecho usando jQuery, por si a alguien le sirve: http://jsfiddle.net/2en4u069/

Código HTML:
Ver original
  1. <div id="test"></div>

Código CSS:
Ver original
  1. html{
  2.     width: 100%;
  3.     height: 100%;
  4. }
  5.  
  6. body{
  7.     width: 100%;
  8.     height: 200%;
  9. }
  10.  
  11. div{
  12.     width: 50%;
  13.     height: 35%;
  14.     background: red;
  15.     margin: 0 auto;
  16. }

Código Javascript:
Ver original
  1. var cuadro = $("#test");
  2.  
  3. var alturaTotal = cuadro.outerHeight();
  4.  
  5. $(window).scroll(function(){
  6.    if ($(this).scrollTop() > alturaTotal){
  7.     cuadro.css("display","none");
  8.    };
  9. });
__________________
¿Te sirvió la respuesta? Deja un +1
  #6 (permalink)  
Antiguo 10/04/2015, 13:39
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ocultar div al detener desplazamiento

Estimado NueveReinas:

Te insto a publicar código relacionado al framework jQuery en el foro destinado para el mismo y no en este. Tratemos de trabajar en este foro solamente con código JavaScript nativo. Cualquier otro problema en el que se esté utilizando algún framework de JavaScript, puede ser tratado en el foro de Frameworks JS o en el de jQuery.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 11/04/2015, 18:33
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: ocultar div al detener desplazamiento

Hola, tenias razón Alexis88, me funciona bien ya no se que pasaba, saludos.

Etiquetas: css, desplazamiento, detener
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 11:50.