ember-in-viewport
Version:
Detect if an Ember View or Component is in the viewport @ 60FPS
42 lines (36 loc) • 991 B
JavaScript
import canUseDOM from 'ember-in-viewport/utils/can-use-dom';
const defaultConfig = {
viewportDidScroll: true,
viewportSpy: false,
viewportListeners: [
{ context: window, event: 'scroll' },
{ context: window, event: 'resize' },
],
viewportTolerance: {
top: 0,
left: 0,
bottom: 0,
right: 0,
},
intersectionThreshold: 0,
scrollableArea: null, // defaults to layout view (document.documentElement)
};
if (canUseDOM) {
defaultConfig.viewportListeners.push({
context: document,
event: 'touchmove',
});
}
export function initialize() {
const application = arguments[1] || arguments[0];
const config = application.resolveRegistration('config:environment');
const { viewportConfig = {} } = config;
const mergedConfig = Object.assign({}, defaultConfig, viewportConfig);
application.register('config:in-viewport', mergedConfig, {
instantiate: false,
});
}
export default {
name: 'viewport-config',
initialize: initialize,
};