$(function() { $('button').click(function() { $('html,body').stop(false).animate(scroollFn(), 1000); }) function scroollFn() { var top=100; var wh = $(window).height(); var st = $(document).scrollTop(); var obj = {} if (st <= wh / 2) { obj.scrollTop = top -= top / 10 } else { obj.scrollTop = top -= top / 2 } return obj } })