JSFiddle - React, Tailwind, and code Playground
HTML
<div id="parte1">
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
</div>
<div id="parte2">
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
</div>
<div id="parte3">
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
<p>Teste teste teste teste teste </p>
</div>
<a href="#parte1" class="btn voltar-ao-topo">Voltar ao topo suavemente</a>
CSS
.btn{
color: red;
position: fixed;
bottom: 0;
right: 0;
}
JavaScript
$(document).ready(function(){
$('.btn').hide();
$(window).scroll(function(){
if ($(this).scrollTop() > 200) {
$('.btn').fadeIn();
}else {
$('.btn').fadeOut();
}
});
$('.voltar-ao-topo').bind('click.smoothscroll',function (e) {
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 500, 'swing', function () {
window.location.hash = target;
});
});
});