top down div bottom animate jquery jquery-animate scrolltop

div - scroll down jquery



jQuery.scrollTop();+animaciĆ³n (9)

Configuro la página para desplazarme hacia arriba cuando se hace clic en un botón. Pero primero usé una declaración if para ver si la parte superior de la página no estaba configurada en 0. Entonces, si no es 0, animo la página para desplazarme a la parte superior.

var body = $("body"); var top = body.scrollTop() // Get position of the body if(top!=0) { body.animate({scrollTop:0}, ''500''); }

La parte difícil ahora es animar algo DESPUÉS de que la página se haya desplazado hacia la parte superior. Entonces mi siguiente pensamiento es, averiguar cuál es la posición de la página. Así que utilicé el registro de la consola para averiguarlo.

console.log(top); // the result was 365

Esto me dio un resultado de 365, supongo que es el número de posición en el que estaba justo antes de desplazarse hacia la parte superior.

Mi pregunta es ¿cómo configuro la posición para que sea 0, para poder agregar otra animación que se ejecute una vez que la página esté en 0?

¡Gracias!


Solución simple:

desplazarse a cualquier elemento por ID o NOMBRE:

SmoothScrollTo("elementId", 1000);

código:

function SmoothScrollTo(id_or_Name, timelength){ var timelength = timelength || 1000; $(''html, body'').animate({ scrollTop: $("#"+id_or_Name).offset().top-70 }, timelength, function(){ window.location.hash = id_or_Name; }); }


Código con la función de hacer clic ()

var body = $(''html, body''); $(''.toTop'').click(function(e){ e.preventDefault(); body.animate({scrollTop:0}, 500, ''swing''); });

.toTop = clase de elemento .toTop tal vez img o a


Para hacer esto, puede establecer una función de devolución de llamada para el comando animado que se ejecutará después de que la animación de desplazamiento haya finalizado.

Por ejemplo:

var body = $("html, body"); body.stop().animate({scrollTop:0}, 500, ''swing'', function() { alert("Finished animating"); });

Donde ese código de alerta es, puede ejecutar más javascript para agregar más animaciones.

Además, el ''swing'' está ahí para establecer la relajación. Visite http://api.jquery.com/animate/ para obtener más información.


Prueba este código:

$(''.Classname'').click(function(){  $("html, body").animate({ scrollTop: 0 }, 600);  return false; });


Pruebe esto en su lugar:

var body = $("body, html"); var top = body.scrollTop() // Get position of the body if(top!=0) { body.animate({scrollTop :0}, 500,function(){ //DO SOMETHING AFTER SCROLL ANIMATION COMPLETED alert(''Hello''); }); }


Utilizar esta:

$(''a[href^="#"]'').on(''click'', function(event) { var target = $( $(this).attr(''href'') ); if( target.length ) { event.preventDefault(); $(''html, body'').animate({ scrollTop: target.offset().top }, 500); } });


para esto puedes usar el método de devolución de llamada

body.animate({ scrollTop:0 }, 500, function(){} // callback method use this space how you like );


debes de ver esto

$(function () { $(''a[href*="#"]:not([href="#"])'').click(function () { if (location.pathname.replace(/^///, '''') == this.pathname.replace(/^///, '''') && location.hostname == this.hostname) { var target = $(this.hash); target = target.length ? target : $(''[name='' + this.hash.slice(1) + '']''); if (target.length) { $(''html, body'').animate({ scrollTop: target.offset().top }, 1000); return false; } } }); });

o pruébalos

$(function () {$(''a'').click(function () { $(''body,html'').animate({ scrollTop: 0 }, 600); return false;});});


jQuery("html,body").animate({scrollTop: jQuery("#your-elemm-id-where you want to scroll").offset().top-<some-number>}, 500, ''swing'', function() { alert("Finished animating"); });