Estoy utilizando un script de desplazamiento suave para mi sitio de una página. Se desplaza a cada ancla.jQuery script desplazamiento uniforme a diferentes secciones con un desplazamiento diferente
Debido al diseño, no puedo tener el broche de anclaje directamente en la parte superior de la página. Tuve que crear anclajes ocultos que están más arriba en la página, por lo que no se ajustan exactamente a la parte superior.
Aquí es el guión que estoy usando actualmente:
jQuery(document).ready(function($) {
$(".scroll").click(function(event){
event.preventDefault();
$('html,body').animate({
scrollTop: $('[name="' + this.hash.substring(1) + '"]').offset().top
}, 500);
});
});
Se me ha informado de que puedo hacer que el desplazamiento ocurra dentro de este guión. En lugar de tener estos pequeños anclajes ocultos en todas partes, simplemente puedo agregar algo al final de la parte superior para compensarlo por una cierta cantidad de píxeles. Sería la parte superior - 250
$('html,body').animate({
scrollTop:$('[name="' + this.hash.substring(1) + '"]').offset().top - 250
}, 500);
El problema es que esto haría el desplazamiento siempre ser 250 píxeles, necesito que sea variable, de forma que, por ejemplo, el div cartera puede estar anclado con un desplazamiento de 200 píxeles, pero el contacto div solo por 50px.
¿Alguien me puede ayudar a escribir algún tipo de selector en el script que me permita ajustar esta parte superior - [variable] en función de qué div se ancle?
¿Has probado el fragmento de código? Debería funcionar dado que obtiene el desplazamiento del ancla y resta 250 de un valor dinámico. Para estar seguro, intente rodear su cálculo con corchetes. – Bojangles
¿puede proporcionar algún código de prueba simple en http://jsfiddle.net/? no estoy seguro de dónde está su 'div # contact' y' div # portfolio'. – Giberno
Hola, sí lo he intentado. Funciona, pero siempre se encuentra exactamente a 250px por encima del div, que no es lo que quiero. – Francesca