Tengo bastantes etiquetas section
en un div con un desbordamiento establecido en hidden
. El código es a lo largo de las líneas de esto:jQuery animate scrollTop
<div id="viewport">
<section>
content
</section>
<section>
content
</section>
</div>
lo tengo configurado como esto porque quiero ser capaz de desplazarse por la sections
contenida dentro de la div
cuando el enlace correspondiente se presiona en el menú. Tengo esta función:
$('#mn a').click(function(){
var aHref = $(this).attr("href");
var sectionHeight = $('section'+aHref+'').height();
$('#viewport').height(sectionHeight);
});
que utilizo para cambiar el tamaño de las #viewport
div porque el sections
son diferentes tamaños. Cuando trato de poner esta parte de desplazamiento en esa función:
$('body,html').animate({scrollTop: $(aHref).offset().top}, 800);
hace que la página entera se desplace. Cuando trato de reemplazar $('body,html')
con $('section, #viewport')
, se desplaza dentro del div, pero no lo hace correctamente.
Tengo un ejemplo en vivo de este here. Supongo que tiene algo que ver con .offset()
o con lo que estoy pasando en el .animate()
, pero he intentado bastantes cosas diferentes pero fue en vano. ¿Puede alguien señalarme en la dirección correcta o decirme qué he hecho mal?
Muchas gracias. Sanitizar los valores funcionó a la perfección! –
Funcionó para mí también. Lo intenté en Firefox. – OMG