Foros del Web » Programando para Internet » Jquery »

Calculo posicion header

Estas en el tema de Calculo posicion header en el foro de Jquery en Foros del Web. Hola buenas a ver si alguien me puede ayudar con la siguiente duda: Tengo un <header> fijo de una altura de 104px entonces quiero que ...
  #1 (permalink)  
Antiguo 05/05/2015, 02:08
 
Fecha de Ingreso: abril-2015
Mensajes: 18
Antigüedad: 9 años
Puntos: 0
Calculo posicion header

Hola buenas a ver si alguien me puede ayudar con la siguiente duda:

Tengo un <header> fijo de una altura de 104px entonces quiero que si estoy en otra página y voy a un ancla de la principal o saltando de cualquier en cualquier ancla ese <header> que tengo fijo no me tape las cabeceras de las secciones.
Yo había probado con algo asi...

$('html,body').animate({
scrollTop: ($(window.location.hash).offset().top - $("header").height())
});

Pero en la consola me da el siguiente error:

Uncaught TypeError: Cannot read property 'top' of undefined

Por favor alguien puede ayudarme o se le ocurre alguna otra solucion? GRACIAS!!
  #2 (permalink)  
Antiguo 05/05/2015, 06:24
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: Calculo posicion header

Porque no es offset().top, es offset.top
Revisa la documentación: http://api.jquery.com/offset/
__________________
¿Te sirvió la respuesta? Deja un +1
  #3 (permalink)  
Antiguo 05/05/2015, 07:19
 
Fecha de Ingreso: abril-2015
Mensajes: 18
Antigüedad: 9 años
Puntos: 0
Respuesta: Calculo posicion header

Cita:
Iniciado por NueveReinas Ver Mensaje
Porque no es offset().top, es offset.top
Revisa la documentación: [url]http://api.jquery.com/offset/[/url]
Muchas gracias pero ese no es el problema ya que probando como tu dices no me hace la función que necesito pues me tapa las cabeceras si le quito al offset los parentesis.

Seguiré buscando a ver como lo soluciono pero muchas gracias
  #4 (permalink)  
Antiguo 06/05/2015, 13:25
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: Calculo posicion header

Cita:
Iniciado por NueveReinas Ver Mensaje
Porque no es offset().top, es offset.top
En realidad, sí es offset().top pues offset() es el método y top, la propiedad.

Saludos

Edito: Asegúrate de que $(window.location.hash) devuelva al objeto en cuestión, así como de que window.location.hash devuelva el identificador esperado.
__________________
«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

Última edición por Alexis88; 06/05/2015 a las 14:30 Razón: Añadido
  #5 (permalink)  
Antiguo 06/05/2015, 15:38
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 13 años, 5 meses
Puntos: 4
Respuesta: Calculo posicion header

Pero en ese caso .top no se esta pasando como propiedad.

Algo así seria para pasarlo como propiedad.

Código Javascript:
Ver original
  1. .offset({ top: 10, left: 30 })

Quizas. Podrias hacerlo asi:

Código Javascript:
Ver original
  1. var htop = $("header").height();
  2. $('html,body').animate({
  3. scrollTop: ($(window.location.hash).offset({ top: 0 - htop})
  4. });

No aseguro que funcione, porque lo estoy haciendo así, a grandes rasgos, sin probarlo antes, ya que ahora no tengo tiempo de probarlo.

Última edición por elmouse19; 06/05/2015 a las 15:59 Razón: Corregir errores.
  #6 (permalink)  
Antiguo 06/05/2015, 16:03
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: Calculo posicion header

elmouse19, el método offset() devuelve las propiedades top y left, a las cuales se puede acceder ya sea mediante la notación por puntos o por corchetes, por lo que lo que hizo luisJava es correcto, solo le falta tomar correctamente al elemento, además, él no quiere establecer un valor sino obtenerlo.

DEMO (verifica los resultados en la consola del navegador)

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 06/05/2015, 16:10
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 13 años, 5 meses
Puntos: 4
Respuesta: Calculo posicion header

Entiendo Alexis88. Gracias por la corrección.

En ese caso, concuerdo con vos, en que debería ver si window.location.hash se devuelve al objeto correcto.

Podrias usar ESTO para probar.

Saludos.
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Etiquetas: Ninguno
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 13:36.