jQuery - ScrollTop without animation

49,727

Solution 1

maybe if you don't want an animation or anything fancy just use an anchor

<a name="top"></a>

Place it where you need to scroll

and in your function where you are calling use

document.location.href="#top";

You could also create a function to append the anchor before the element, do the document.location thing and later remove that anchor.

http://jsfiddle.net/fSrxr/1/

Solution 2

Try this:

var offTop = $('#box').offset().top - 43;
$('#mainCt').scrollTop(offTop);

The scrollTop property accepts just an integer, no suffixes or units required.

Solution 3

Skip jQuery. Just use JavaScript:

window.scroll(0, 0);

Solution 4

http://api.jquery.com/scrollTop/

$(window).scrollTop(offTop)

Solution 5

Why not use it with less duration. I fiddled it and it had no animation. SInce there will be no time to see the animation, there will be no animation at all.

var offTop = $('#box').offset().top;
offTop  = offTop-43;
$('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 50); //50 added here as duartion
Share:
49,727
user970727
Author by

user970727

Updated on December 22, 2021

Comments

  • user970727
    user970727 over 2 years

    How can I use the scrolltop without an animation

    This code works:

    var offTop = $('#box').offset().top;
    offTop  = offTop-43;
    $('#mainCt').animate({scrollTop: '+=' + offTop + 'px'}, 400);
    

    And here are my (not working solutions):

    $("#mainCt").scrollTop('+=' + offTop + 'px');                 // doesn't work
    $("#mainCt").scrollTop('+='+offTop);                          // doesn't work
    hhh = setTimeout(' $("#mainCt").scrollTop('+offTop+');',800); // doesn't work
    

    DEMO
    http://jsfiddle.net/DNNFF/9/