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'});
});