"Check Is On Screen"
Bootstrap 4.1.1 Snippet by sdcarte

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<div class="container">
<div class="row">
<div class="list-group">
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
<div class="list-group-item">Test</div>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
3
.list-group-item {transition: all 0.5s;}
.notOnScreen {background-color: red;}
.onScreen {background-color: green;}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
$(document).ready(function() {
$.fn.isOnScreen = function(){
var win = $(window);
var viewport = {
top : win.scrollTop(),
left : win.scrollLeft()
};
viewport.right = viewport.left + win.width();
viewport.bottom = viewport.top + win.height();
var bounds = this.offset();
bounds.right = bounds.left + this.outerWidth();
bounds.bottom = bounds.top + this.outerHeight();
return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
};
function addClassOnScreen(elem) {
$(elem).each(function(){
var $this = $(this);
if($this.isOnScreen()){
$this.addClass('onScreen');
$this.removeClass('notOnScreen');
}
$(window).on('scroll', function () {
if($this.isOnScreen()){
$this.addClass('onScreen');
$this.removeClass('notOnScreen');
}else {
$this.removeClass('onScreen');
$this.addClass('notOnScreen');
}
});
});
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Related: See More


Questions / Comments: