あれをjQueryを使って実装する場合、animateメソッドを使います。おおざっぱな実装ではこんな感じです。
$('#back_to_top').hide();
$(window).scroll(function(){
if($(this).scrollTop() > 1000){
$('#back_to_top').fadeIn();
}else{
$('#back_to_top').fadeOut();
}
});
$('#back_to_top a').click(function(){
$('body').animate({
scrollTop: 0
}, 400);
return false;
});
ボタンのIDはback_to_topです。まずはscrollTopで現在のy軸座標を取得します。それに合わせて適当にshowやhideでボタンを表示します。
今回の前提としては、ボタンのpositionをfixedで指定しておき、画面読み込み時にはhideメソッドで隠しておく感じですね。そして適当にピクセル分スクロールダウンしたら、fadeInでふわっと表示させます。もちろん単純にshowでも構いません。
さて、UIに関することはこれくらいにして、とにかくポイントはanimateメソッドを使うことです。これは四角形なんかを変形させるときにも使えます。
scrollTopではなく、heightやwidthに値を指定しておくだけですね。
あとは第二引数で変化時間を設定しておけば、オリジナルのアニメーションを実装できるという具合です。もう少し複雑な引数もあるのですが、基本はこれだけです。
animateメソッドは簡単なアニメーションを手早く実装できるので、ぜひ使いこなしたい機能です。