jQuery rendre div glisser lors du défilement en bas de page

Je veux faire une div glisser sur ma page de droite lorsqu'un utilisateur fait défiler la page (div contiendra un lien qui mène vers le haut de la page). Voici le code que j'utilise actuellement:

jQuery(window).scroll(function() {
if (jQuery(this).scrollTop() > 100) {
    jQuery('.totop').animate({ right: '0px' });
} else {
    jQuery('.totop').animate({ right: '-300px' });
}
});

Et le CSS:

.totop {
position:fixed;
bottom:50%;
right:-300px;
width:300px;
height:100px;
font-size:30px;
color:white;
background:#f18500;
}

La Div se comporte très bizarrement, quand je scroll vers le bas de la div prend environ 5 secondes, puis il s'en vue, mais regarde comme il fait plusieurs tentatives pour se glisser à nouveau avant de reste encore, quand je glisse à nouveau vers le haut, il disparaît...mais après environ 5 secondes. Aimerais de l'aide pour savoir quel est le problème avec mon code s'il vous plaît.

lire cet article pour créer un défilement vers le haut de la page: recentsolutions.net/web-development/smooth-scroll

OriginalL'auteur Sam Skirrow | 2013-02-22