scrollscene
Version:
ScrollScene is an extra layer on top of ScrollMagic as well as using IntersectionObserver to achieve similar effects.
29 lines (25 loc) • 3.09 kB
JavaScript
import throttle from 'lodash.throttle';
import { isObject } from "./isObject";
export var scrollAnimationInit = function scrollAnimationInit(breakpoints, init, destroy) {
if (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', throttle(fn, 700));
} else {
init();
}
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oZWxwZXJzL3Njcm9sbEFuaW1hdGlvbkluaXQudHMiXSwibmFtZXMiOlsidGhyb3R0bGUiLCJpc09iamVjdCIsInNjcm9sbEFuaW1hdGlvbkluaXQiLCJicmVha3BvaW50cyIsImluaXQiLCJkZXN0cm95Iiwia2V5cyIsIk9iamVjdCIsInJldmVyc2UiLCJmbiIsImluZGV4IiwibGVuZ3RoIiwiYnJlYWtwb2ludCIsInBhcnNlRmxvYXQiLCJ3aW5kb3ciLCJpbm5lcldpZHRoIiwiYWRkRXZlbnRMaXN0ZW5lciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsUUFBUCxNQUFxQixpQkFBckI7QUFDQSxTQUFTQyxRQUFUO0FBRUEsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLENBQUNDLFdBQUQsRUFBY0MsSUFBZCxFQUFvQkMsT0FBcEIsRUFBZ0M7QUFDakUsTUFBSUosUUFBUSxDQUFDRSxXQUFELENBQVosRUFBMkI7QUFDekIsUUFBTUcsSUFBSSxHQUFHQyxNQUFNLENBQUNELElBQVAsQ0FBWUgsV0FBWixFQUF5QkssT0FBekIsRUFBYjs7QUFFQSxRQUFNQyxFQUFFLEdBQUcsU0FBTEEsRUFBSyxHQUFNO0FBQ2YsV0FBSyxJQUFJQyxLQUFLLEdBQUcsQ0FBakIsRUFBb0JBLEtBQUssR0FBR0osSUFBSSxDQUFDSyxNQUFqQyxFQUF5Q0QsS0FBSyxJQUFJLENBQWxELEVBQXFEO0FBQ25ELFlBQU1FLFVBQVUsR0FBR0MsVUFBVSxDQUFDUCxJQUFJLENBQUNJLEtBQUQsQ0FBTCxDQUE3Qjs7QUFFQSxZQUFJRSxVQUFVLElBQUlFLE1BQU0sQ0FBQ0MsVUFBekIsRUFBcUM7QUFDbkMsY0FBSVosV0FBVyxDQUFDUyxVQUFELENBQWYsRUFBNkI7QUFDM0JSLFlBQUFBLElBQUk7QUFDTCxXQUZELE1BRU87QUFDTEMsWUFBQUEsT0FBTztBQUNSOztBQUVEO0FBQ0Q7QUFDRjtBQUNGLEtBZEQ7O0FBZ0JBSSxJQUFBQSxFQUFFO0FBRUZLLElBQUFBLE1BQU0sQ0FBQ0UsZ0JBQVAsQ0FBd0IsUUFBeEIsRUFBa0NoQixRQUFRLENBQUNTLEVBQUQsRUFBSyxHQUFMLENBQTFDO0FBQ0QsR0F0QkQsTUFzQk87QUFDTEwsSUFBQUEsSUFBSTtBQUNMO0FBQ0YsQ0ExQk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdGhyb3R0bGUgZnJvbSAnbG9kYXNoLnRocm90dGxlJ1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuL2lzT2JqZWN0J1xuXG5leHBvcnQgY29uc3Qgc2Nyb2xsQW5pbWF0aW9uSW5pdCA9IChicmVha3BvaW50cywgaW5pdCwgZGVzdHJveSkgPT4ge1xuICBpZiAoaXNPYmplY3QoYnJlYWtwb2ludHMpKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGJyZWFrcG9pbnRzKS5yZXZlcnNlKClcblxuICAgIGNvbnN0IGZuID0gKCkgPT4ge1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGtleXMubGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICAgIGNvbnN0IGJyZWFrcG9pbnQgPSBwYXJzZUZsb2F0KGtleXNbaW5kZXhdKVxuXG4gICAgICAgIGlmIChicmVha3BvaW50IDw9IHdpbmRvdy5pbm5lcldpZHRoKSB7XG4gICAgICAgICAgaWYgKGJyZWFrcG9pbnRzW2JyZWFrcG9pbnRdKSB7XG4gICAgICAgICAgICBpbml0KClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVzdHJveSgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZuKClcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aHJvdHRsZShmbiwgNzAwKSlcbiAgfSBlbHNlIHtcbiAgICBpbml0KClcbiAgfVxufVxuIl19