JSFiddle - React, Tailwind, and code Playground
by Sam G
HTML
<div id="floater">FLOATING BUTTON</div>
<div>
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
<span class="red">bla bla bla</span> <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
<span class="red">bla bla bla</span> <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
<span class="red">bla bla bla</span> <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
<span class="red">bla bla bla</span> <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
bla bla bla <br />
<div>
CSS
#floater {
position: absolute;
top: 100px;
right: 1px;
width: 100px;
height: 100px;
-webkit-transition: all 2s ease-in-out;
transition: all 2s ease-in-out;
z-index: 1;
border-radius: 3px 0 0 3px;
padding: 10px;
background-color: #41a6d9;
color: white;
text-align: center;
box-sizing: border-box;
}
.red {
background-color: green;
color: white;
}
JavaScript
$(window).scroll(function() {
var winScrollTop = $(window).scrollTop();
var winHeight = $(window).height();
var floaterHeight = $('#floater').outerHeight(true);
var fromBottom = 20;
var top = winScrollTop + winHeight - floaterHeight - fromBottom;
$('#floater').css({'top': top + 'px'});
});