Enter-view.js Demo

Dependency-free JavaScript library to detect when element enters into view

Start scrolling to see examples.

Default (no offset)

enterView({
 selector: '.block-a',
 enter: function(el) {
  el.classList.add('entered');
 }
});
					

.block-a

50% offset

enterView({
 selector: '.block-b',
 offset: 0.5,
 enter: function(el) {
  el.classList.add('entered');
 }
});
					

.block-b

75% offset, trigger every time

var count = 0;
enterView({
 selector: '.block-c',
 offset: '0.75,
 enter: function(el) {
  el.classList.add('entered');
  count += 1;
  el.querySelector('span').innerText = count;
 }
});
					

.block-c (0)

Multiple elements, 50% offset

enterView({
 selector: '.block-d',
 offset: 0.5,
 enter: function(el) {
  el.classList.add('entered');
 }
});
					

.block-d

.block-d

.block-d

Exit element, 50% offset

enterView({
 selector: '.block-e',
 offset: 0.5,
 enter: function(el) {
  el.classList.add('entered');
 },
 exit: function(el) {
  el.classList.remove('entered');
 },
});
				

.block-e

Progress increments, 50% offset

enterView({
 selector: '.block-f',
 offset: 0.5,
 enter: function(el) {
  el.classList.add('entered');
 },
 progress: function(el, progress) {
  var p = el.querySelector('.progress')
  p.innerText = progress.toFixed(2);
 }
});
				

.block-f