JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/scrollmonitor/1.2.0/scrollMonitor.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/scrollmonitor/1.2.0/scrollMonitor.js"></script>
<div class="col-md-12 ">
<div class="box">
<img src="https://dummyimage.com/800x800" class="icon"/>
<div class="rad-slideshow-item active-adjacent">
<div class="rad-asset-wrapper">
<h1>WEB<br/>DESIGN</h1>
</div>
</div>
</div>
<div class="box">
<img src="https://dummyimage.com/800x800" class="icon"/>
<div class="rad-slideshow-item active-adjacent">
<div class="rad-asset-wrapper">
<h1>WEB<br/>DESIGN</h1>
</div>
</div>
</div>
</div>
CSS
.col-md-12 {
height: 1500px;
padding-top: 1000px;
}
.box{
position:relative;
}
.animated {
opacity: 1;
visibility: visible;
transition: opacity 1s 0s, visibility 1s 0s;
z-index: 2;
position: fixed;
top: 0;
left: 0;
}
.rad-slideshow-item {
/* position: relative; */
}
.rad-slideshow-item .rad-asset-wrapper {
display: block;
padding: 0;
position: absolute;
top: 0;
left: 0;
overflow: hidden;
z-index: 3;
}
.animated .rad-slideshow-item.active-adjacent div.rad-asset-wrapper {
background: #000;
opacity: 0;
visibility: hidden;
position: fixed;
top: 0;
left: 0;
transition: opacity 0s 0s, visibility 0s 0s;
z-index: 1;
display: none;
}
.animated .rad-slideshow-item.active-adjacent div.rad-asset-wrapper {
display: block;
transform: translate3d(0, 0, 0);
transition: opacity 0s 1s, visibility 0s 1s;
}
.rad-spinner {
position: absolute;
top: 50%;
left: 50%;
z-index: 2;
transform: translate3d(-50%, -50%, 0);
}
JavaScript
var el = $(".box");
var watcher = scrollMonitor.create( el );
watcher.enterViewport(function() {
console.log( 'I have entered the viewport' );
el.addClass('animated flip').css('background', 'red');
});
watcher.exitViewport(function() {
console.log( 'I have left the viewport' );
el.removeClass('animated flip').css('background', 'none');
});