JSFiddle - React, Tailwind, and code Playground
HTML
<body>
<div class="content" id="top">
<p>Scroll to the bottom of this page (or go: <a href="#gotop">here</a>) then, click on the "<span class="orange">Top</span>" link:</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>A very long page</p>
<p>
<a href="#top" title=" Go to Top " id="gotop">↑ <span class="orange">Top</span></a>
</p>
</div>
</body>
CSS
.content {
margin: 0 0 5em 0
}
#gotop {
float: right;
margin : 0 1em 0 0;
text-decoration: none;
text-transform : uppercase;
font: bold normal normal 12px/1 "Helvetica Neue", Helvetica, Arial, sans-serif;
}
a span {
vertical-align: middle;
text-decoration: underline;
}
.orange {color: #ff6600;}
JavaScript
/*! Simple animated 'Go to Top' scroll by cara-tm.com, MIT license. */
document.getElementById("gotop").onclick=function(z){'use strict';function o(){n=(new Date()).getTime()-u,e>n&&(t.scrollTop=a-a*(1-Math.cos(n/e*Math.PI))/2,c=setTimeout(function(){o();},10));}var e=(document.body.offsetHeight||document.documentElement.offsetHeight||window.innerHeight),t='BackCompat'==document.compatMode?document.body:document.documentElement;0===t.scrollTop&&(t=document.body);var c,n,m=t.scrollTop,u=(new Date()).getTime(),a=m;clearTimeout(c),o();z.preventDefault();};