scrollscene
Version:
ScrollScene is an extra layer on top of ScrollMagic as well as using IntersectionObserver to achieve similar effects.
42 lines (32 loc) • 3.32 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.scrollAnimationInit = void 0;
var _lodash = _interopRequireDefault(require("lodash.throttle"));
var _isObject = require("./isObject");
var scrollAnimationInit = function scrollAnimationInit(breakpoints, init, destroy) {
if ((0, _isObject.isObject)(breakpoints)) {
var keys = Object.keys(breakpoints).reverse();
var fn = function fn() {
for (var index = 0; index < keys.length; index += 1) {
var breakpoint = parseFloat(keys[index]);
if (breakpoint <= window.innerWidth) {
if (breakpoints[breakpoint]) {
init();
} else {
destroy();
}
break;
}
}
};
fn();
window.addEventListener('resize', (0, _lodash["default"])(fn, 700));
} else {
init();
}
};
exports.scrollAnimationInit = scrollAnimationInit;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL3Njcm9sbEFuaW1hdGlvbkluaXQudHMiXSwibmFtZXMiOlsic2Nyb2xsQW5pbWF0aW9uSW5pdCIsImJyZWFrcG9pbnRzIiwiaW5pdCIsImRlc3Ryb3kiLCJrZXlzIiwiT2JqZWN0IiwicmV2ZXJzZSIsImZuIiwiaW5kZXgiLCJsZW5ndGgiLCJicmVha3BvaW50IiwicGFyc2VGbG9hdCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJhZGRFdmVudExpc3RlbmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFTyxJQUFNQSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLENBQUNDLFdBQUQsRUFBY0MsSUFBZCxFQUFvQkMsT0FBcEIsRUFBZ0M7QUFDakUsTUFBSSx3QkFBU0YsV0FBVCxDQUFKLEVBQTJCO0FBQ3pCLFFBQU1HLElBQUksR0FBR0MsTUFBTSxDQUFDRCxJQUFQLENBQVlILFdBQVosRUFBeUJLLE9BQXpCLEVBQWI7O0FBRUEsUUFBTUMsRUFBRSxHQUFHLFNBQUxBLEVBQUssR0FBTTtBQUNmLFdBQUssSUFBSUMsS0FBSyxHQUFHLENBQWpCLEVBQW9CQSxLQUFLLEdBQUdKLElBQUksQ0FBQ0ssTUFBakMsRUFBeUNELEtBQUssSUFBSSxDQUFsRCxFQUFxRDtBQUNuRCxZQUFNRSxVQUFVLEdBQUdDLFVBQVUsQ0FBQ1AsSUFBSSxDQUFDSSxLQUFELENBQUwsQ0FBN0I7O0FBRUEsWUFBSUUsVUFBVSxJQUFJRSxNQUFNLENBQUNDLFVBQXpCLEVBQXFDO0FBQ25DLGNBQUlaLFdBQVcsQ0FBQ1MsVUFBRCxDQUFmLEVBQTZCO0FBQzNCUixZQUFBQSxJQUFJO0FBQ0wsV0FGRCxNQUVPO0FBQ0xDLFlBQUFBLE9BQU87QUFDUjs7QUFFRDtBQUNEO0FBQ0Y7QUFDRixLQWREOztBQWdCQUksSUFBQUEsRUFBRTtBQUVGSyxJQUFBQSxNQUFNLENBQUNFLGdCQUFQLENBQXdCLFFBQXhCLEVBQWtDLHdCQUFTUCxFQUFULEVBQWEsR0FBYixDQUFsQztBQUNELEdBdEJELE1Bc0JPO0FBQ0xMLElBQUFBLElBQUk7QUFDTDtBQUNGLENBMUJNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHRocm90dGxlIGZyb20gJ2xvZGFzaC50aHJvdHRsZSdcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi9pc09iamVjdCdcblxuZXhwb3J0IGNvbnN0IHNjcm9sbEFuaW1hdGlvbkluaXQgPSAoYnJlYWtwb2ludHMsIGluaXQsIGRlc3Ryb3kpID0+IHtcbiAgaWYgKGlzT2JqZWN0KGJyZWFrcG9pbnRzKSkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhicmVha3BvaW50cykucmV2ZXJzZSgpXG5cbiAgICBjb25zdCBmbiA9ICgpID0+IHtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBrZXlzLmxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgICAgICBjb25zdCBicmVha3BvaW50ID0gcGFyc2VGbG9hdChrZXlzW2luZGV4XSlcblxuICAgICAgICBpZiAoYnJlYWtwb2ludCA8PSB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgICAgICAgIGlmIChicmVha3BvaW50c1ticmVha3BvaW50XSkge1xuICAgICAgICAgICAgaW5pdCgpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRlc3Ryb3koKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmbigpXG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhyb3R0bGUoZm4sIDcwMCkpXG4gIH0gZWxzZSB7XG4gICAgaW5pdCgpXG4gIH1cbn1cbiJdfQ==