JSFiddle - React, Tailwind, and code Playground
by Aatman Bhatt
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id='text'></span>
<div>
<ul>
<li id='il'></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
...
CSS
div {
height: 420px;
overflow: auto;
margin: 100px auto;
width:600px;
border: 1px dotted black
}
ul {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-flow: row wrap;
}
ul li {
flex: 1 45%;
height: 200px;
border: 1px solid red;
display: inline-block;
background: green;
visibility: hidden;
opacity: 0;
transition: 500ms
}
JavaScript
$(document).ready(function(){
var divTop = $('div').offset().top;
var viewPort = $('div').height();
$('div').scroll( function(){
$('li').each(function(){
var liTop = $(this).offset().top;
var liBottom = $("#il").offset().top + $("#il").height();$('span').text(liBottom+"||"+liTop+"||"+divTop);
if(liTop <= viewPort && liTop >= 0){
$(this).css({
'opacity': '1',
'visibility': 'visible',
'text-shadow': 'none'
});
} else {
$(this).css({
'opacity': '0',
'visibility': 'hidden',
})
}
});
});
});