Dependency-free JavaScript library to detect when element enters into view. See demo. It uses requestAnimationFrame in favor of scroll events for less jank. Less than 1kb minified + gzipped.
Old school (exposes the enterView
global):
<script src="https://unpkg.com/enter-view"></script>
New school:
npm install enter-view --save
And then import/require it:
import enterView from 'enter-view'; // or... const enterView = require('enterView');
enterView({
selector: '.class-name',
enter: function(el) {
el.classList.add('entered');
}
});
enterView({
selector: '.class-name',
enter: function(el) {
el.classList.add('entered');
},
exit: function(el) {
el.classList.remove('entered');
},
progress: function(el, progress) {
el.style.opacity = progress;
},
offset: 0.5, // enter at middle of viewport
once: true, // trigger just once
});
selector: [string or array of elements] required
Takes a class, id, or array of dom elements.
enter: [function] optionalCallback function that returns the element that was entered.
exit: [function] optionalCallback function that returns the element that was exited.
progress: [function] optionalCallback function that returns the element that was progressed through, and a value between 0 and 1 of how far through the element progress has been made.
offset: [number] optional (defaults to 0)A value from 0 to 1 of how far from the bottom of the viewport to offset the trigger by. 0 = top of element crosses bottom of viewport (enters screen from bottom), 1 = top of element crosses top of viewport (exits screen top).
once: [boolean] optional (defaults to false)Whether or not to trigger the callback just once.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4