lanimate 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,7 +14,7 @@ npm install lanimate
14
14
  import lanimate from 'lanimate';
15
15
  ```
16
16
 
17
- or include it the traditional way:
17
+ or as a ready-to-go bundle:
18
18
 
19
19
  ```html
20
20
  <script src="lanimate.min.js"></script>
package/lanimate.min.js CHANGED
@@ -1,201 +1 @@
1
- (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
- "use strict";
3
-
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
-
6
- Object.defineProperty(exports, "__esModule", {
7
- value: true
8
- });
9
- exports.default = void 0;
10
-
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
-
13
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
-
15
- var lanimate = /*#__PURE__*/function () {
16
- function lanimate() {
17
- var _this = this;
18
-
19
- (0, _classCallCheck2.default)(this, lanimate);
20
- document.addEventListener('DOMContentLoaded', function () {
21
- _this.ready();
22
- });
23
- window.addEventListener('load', function () {
24
- _this.load();
25
- });
26
- }
27
-
28
- (0, _createClass2.default)(lanimate, [{
29
- key: "ready",
30
- value: function ready() {
31
- document.head.insertAdjacentHTML('beforeend', "\n <style>\n [data-lanimate] {\n opacity: 0;\n }\n /* disable on mobile */\n @media screen and (max-width: 1100px) {\n [data-lanimate] {\n transition: all 0s ease 0s;\n opacity: 1;\n }\n [data-lanimate='scrollX'] {\n transform: translateX(0px);\n }\n [data-lanimate='scrollY'] {\n transform: translateX(0px);\n }\n [data-lanimate='scale'] {\n transform: scale(1) translateY(0px);\n }\n [data-lanimate='rotate'] {\n transform: rotate(0deg);\n }\n }\n </style>\n ");
32
- }
33
- }, {
34
- key: "traverseAllTextNodes",
35
- value: function traverseAllTextNodes($el, $fn) {
36
- var _this2 = this;
37
-
38
- if ($el.childNodes.length > 0) {
39
- $el.childNodes.forEach(function ($el2) {
40
- if ($el2.nodeType === 3) {
41
- $el2.textContent = $fn($el2.textContent);
42
- } else {
43
- _this2.traverseAllTextNodes($el2, $fn);
44
- }
45
- });
46
- }
47
- }
48
- }, {
49
- key: "load",
50
- value: function load() {
51
- var _this3 = this;
52
-
53
- if (document.querySelectorAll('[data-lanimate-split]').length > 0) {
54
- document.querySelectorAll('[data-lanimate-split]').forEach(function ($el) {
55
- $el.setAttribute('data-aria-label', $el.innerText.replace(/(?:\r\n|\r|\n)/g, ' '));
56
- $el.innerHTML = $el.innerHTML.split(' ').join('&nbsp;');
57
- var shift = 0;
58
-
59
- if ($el.getAttribute('data-lanimate-split') === 'char') {
60
- _this3.traverseAllTextNodes($el, function ($text) {
61
- return '%span%' + $text.split('').join('%/span%%span%') + '%/span%';
62
- });
63
-
64
- $el.innerHTML = $el.innerHTML.split('%span%').join('<span>').split('%/span%').join('</span>');
65
- shift = 100;
66
- }
67
-
68
- if ($el.getAttribute('data-lanimate-split') === 'word') {
69
- _this3.traverseAllTextNodes($el, function ($text) {
70
- return '%span%' + $text.split(' ').join('%/span% %span%') + '%/span%';
71
- });
72
-
73
- $el.innerHTML = $el.innerHTML.split('%span%').join('<span>').split('%/span%').join('</span>');
74
- shift = 250;
75
- }
76
-
77
- if ($el.getAttribute('data-lanimate-split') === 'line') {
78
- $el.innerHTML = '<span>' + $el.innerHTML.split('<br>').join('</span><br/><span>') + '</span>';
79
- shift = 500;
80
- }
81
-
82
- var index = 0;
83
- $el.querySelectorAll('span').forEach(function ($el2, i) {
84
- if ($el2.innerText.trim() == '') {
85
- return;
86
- }
87
-
88
- $el2.setAttribute('data-lanimate', $el.getAttribute('data-lanimate'));
89
- var delay = 0;
90
-
91
- if ($el.hasAttribute('data-lanimate-delay')) {
92
- delay = parseInt($el.getAttribute('data-lanimate-delay'));
93
- }
94
-
95
- if ($el.hasAttribute('data-lanimate-speed')) {
96
- $el2.setAttribute('data-lanimate-speed', $el.getAttribute('data-lanimate-speed'));
97
- delay *= 1 / parseInt($el.getAttribute('data-lanimate-speed'));
98
- }
99
-
100
- $el2.setAttribute('data-lanimate-delay', delay + shift * index);
101
- index++;
102
- });
103
- $el.removeAttribute('data-lanimate');
104
- $el.removeAttribute('data-lanimate-delay');
105
- $el.removeAttribute('data-lanimate-speed');
106
- });
107
- }
108
-
109
- if (document.querySelectorAll('[data-lanimate-speed]').length > 0) {
110
- document.querySelectorAll('[data-lanimate-speed]').forEach(function ($el) {
111
- var speed = parseInt($el.getAttribute('data-lanimate-speed')) / 1000;
112
- setTimeout(function () {
113
- $el.style.transitionDuration = speed + 's, ' + speed + 's';
114
- }, 10);
115
- });
116
- }
117
-
118
- if (document.querySelectorAll('[data-lanimate]').length > 0) {
119
- document.querySelectorAll('[data-lanimate]').forEach(function ($el) {
120
- _this3.start($el);
121
-
122
- window.addEventListener('scroll', function () {
123
- _this3.start($el);
124
- });
125
- });
126
- }
127
-
128
- document.head.insertAdjacentHTML('beforeend', "\n <style>\n [data-lanimate='fade'] {\n }\n [data-lanimate='scrollX'] {\n transform: translateX(30px);\n }\n [data-lanimate='scrollY'] {\n transform: translateY(30px);\n }\n [data-lanimate='scale'] {\n transform: scale(1.1) translateY(30px);\n }\n [data-lanimate='rotate'] {\n transform: rotate(15deg);\n transform-origin: 0 0;\n }\n [data-lanimate-started] {\n transition: opacity 1s ease-in-out, transform 1s ease-in-out;\n opacity: 1;\n }\n [data-lanimate-split] span {\n display:inline-block;\n }\n [data-lanimate='fade'][data-lanimate-started] {\n }\n [data-lanimate='scrollX'][data-lanimate-started] {\n transform: translateX(0px);\n }\n [data-lanimate='scrollY'][data-lanimate-started] {\n transform: translateX(0px);\n }\n [data-lanimate='scale'][data-lanimate-started] {\n transform: scale(1) translateY(0px);\n }\n [data-lanimate='rotate'][data-lanimate-started] {\n transform: rotate(0deg);\n }\n </style>\n ");
129
- }
130
- }, {
131
- key: "start",
132
- value: function start($el) {
133
- if (!$el.hasAttribute('data-lanimate-started') && this.scrollTop() + window.innerHeight >= this.offsetTop($el)) {
134
- var delay = 0;
135
-
136
- if ($el.hasAttribute('data-lanimate-delay')) {
137
- delay = parseInt($el.getAttribute('data-lanimate-delay'));
138
- }
139
-
140
- setTimeout(function () {
141
- $el.setAttribute('data-lanimate-started', 'true');
142
- }, delay);
143
- }
144
- }
145
- }, {
146
- key: "scrollTop",
147
- value: function scrollTop() {
148
- var doc = document.documentElement;
149
- return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
150
- }
151
- }, {
152
- key: "offsetTop",
153
- value: function offsetTop($el) {
154
- return $el.getBoundingClientRect().top + window.pageYOffset - document.documentElement.clientTop;
155
- }
156
- }]);
157
- return lanimate;
158
- }();
159
-
160
- exports.default = lanimate;
161
- window.lanimate = lanimate;
162
-
163
- },{"@babel/runtime/helpers/classCallCheck":2,"@babel/runtime/helpers/createClass":3,"@babel/runtime/helpers/interopRequireDefault":4}],2:[function(require,module,exports){
164
- function _classCallCheck(instance, Constructor) {
165
- if (!(instance instanceof Constructor)) {
166
- throw new TypeError("Cannot call a class as a function");
167
- }
168
- }
169
-
170
- module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
171
- },{}],3:[function(require,module,exports){
172
- function _defineProperties(target, props) {
173
- for (var i = 0; i < props.length; i++) {
174
- var descriptor = props[i];
175
- descriptor.enumerable = descriptor.enumerable || false;
176
- descriptor.configurable = true;
177
- if ("value" in descriptor) descriptor.writable = true;
178
- Object.defineProperty(target, descriptor.key, descriptor);
179
- }
180
- }
181
-
182
- function _createClass(Constructor, protoProps, staticProps) {
183
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
184
- if (staticProps) _defineProperties(Constructor, staticProps);
185
- Object.defineProperty(Constructor, "prototype", {
186
- writable: false
187
- });
188
- return Constructor;
189
- }
190
-
191
- module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
192
- },{}],4:[function(require,module,exports){
193
- function _interopRequireDefault(obj) {
194
- return obj && obj.__esModule ? obj : {
195
- "default": obj
196
- };
197
- }
198
-
199
- module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
200
- },{}]},{},[1])
201
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJfanMvc2NyaXB0LmpzIiwibm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY2xhc3NDYWxsQ2hlY2suanMiLCJub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIsIm5vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7SUNBcUIsUTtBQUNqQixzQkFBYztBQUFBOztBQUFBO0FBQ1YsSUFBQSxRQUFRLENBQUMsZ0JBQVQsQ0FBMEIsa0JBQTFCLEVBQThDLFlBQU07QUFDaEQsTUFBQSxLQUFJLENBQUMsS0FBTDtBQUNILEtBRkQ7QUFHQSxJQUFBLE1BQU0sQ0FBQyxnQkFBUCxDQUF3QixNQUF4QixFQUFnQyxZQUFNO0FBQ2xDLE1BQUEsS0FBSSxDQUFDLElBQUw7QUFDSCxLQUZEO0FBR0g7Ozs7V0FDRCxpQkFBUTtBQUNKLE1BQUEsUUFBUSxDQUFDLElBQVQsQ0FBYyxrQkFBZCxDQUNJLFdBREo7QUE2Qkg7OztXQUNELDhCQUFxQixHQUFyQixFQUEwQixHQUExQixFQUErQjtBQUFBOztBQUMzQixVQUFJLEdBQUcsQ0FBQyxVQUFKLENBQWUsTUFBZixHQUF3QixDQUE1QixFQUErQjtBQUMzQixRQUFBLEdBQUcsQ0FBQyxVQUFKLENBQWUsT0FBZixDQUF1QixVQUFBLElBQUksRUFBSTtBQUMzQixjQUFJLElBQUksQ0FBQyxRQUFMLEtBQWtCLENBQXRCLEVBQXlCO0FBQ3JCLFlBQUEsSUFBSSxDQUFDLFdBQUwsR0FBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFOLENBQXRCO0FBQ0gsV0FGRCxNQUVPO0FBQ0gsWUFBQSxNQUFJLENBQUMsb0JBQUwsQ0FBMEIsSUFBMUIsRUFBZ0MsR0FBaEM7QUFDSDtB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Q0g7Ozs7OztBQUdMLE1BQU0sQ0FBQyxRQUFQLEdBQWtCLFFBQWxCOzs7QUNwTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBsYW5pbWF0ZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVhZHkoKSB7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuaW5zZXJ0QWRqYWNlbnRIVE1MKFxuICAgICAgICAgICAgJ2JlZm9yZWVuZCcsXG4gICAgICAgICAgICBgXG4gICAgICAgICAgICA8c3R5bGU+XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGVdIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLyogZGlzYWJsZSBvbiBtb2JpbGUgKi9cbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGVdIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwcyBlYXNlIDBzO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZT0nc2Nyb2xsWCddIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIFtkYXRhLWxhbmltYXRlPSdzY3JvbGxZJ10ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3NjYWxlJ10ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDBweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3JvdGF0ZSddIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zdHlsZT5cbiAgICAgICAgICAgIGBcbiAgICAgICAgKTtcbiAgICB9XG4gICAgdHJhdmVyc2VBbGxUZXh0Tm9kZXMoJGVsLCAkZm4pIHtcbiAgICAgICAgaWYgKCRlbC5jaGlsZE5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICRlbC5jaGlsZE5vZGVzLmZvckVhY2goJGVsMiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCRlbDIubm9kZVR5cGUgPT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgJGVsMi50ZXh0Q29udGVudCA9ICRmbigkZWwyLnRleHRDb250ZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYXZlcnNlQWxsVGV4dE5vZGVzKCRlbDIsICRmbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbG9hZCgpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhbmltYXRlLXNwbGl0XScpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhbmltYXRlLXNwbGl0XScpLmZvckVhY2goJGVsID0+IHtcbiAgICAgICAgICAgICAgICAkZWwuc2V0QXR0cmlidXRlKCdkYXRhLWFyaWEtbGFiZWwnLCAkZWwuaW5uZXJUZXh0LnJlcGxhY2UoLyg/OlxcclxcbnxcXHJ8XFxuKS9nLCAnICcpKTtcbiAgICAgICAgICAgICAgICAkZWwuaW5uZXJIVE1MID0gJGVsLmlubmVySFRNTC5zcGxpdCgnICcpLmpvaW4oJyZuYnNwOycpO1xuICAgICAgICAgICAgICAgIGxldCBzaGlmdCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKCRlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3BsaXQnKSA9PT0gJ2NoYXInKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhdmVyc2VBbGxUZXh0Tm9kZXMoJGVsLCAkdGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyVzcGFuJScgKyAkdGV4dC5zcGxpdCgnJykuam9pbignJS9zcGFuJSVzcGFuJScpICsgJyUvc3BhbiUnO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgJGVsLmlubmVySFRNTCA9ICRlbC5pbm5lckhUTUwuc3BsaXQoJyVzcGFuJScpLmpvaW4oJzxzcGFuPicpLnNwbGl0KCclL3NwYW4lJykuam9pbignPC9zcGFuPicpO1xuICAgICAgICAgICAgICAgICAgICBzaGlmdCA9IDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCRlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3BsaXQnKSA9PT0gJ3dvcmQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJhdmVyc2VBbGxUZXh0Tm9kZXMoJGVsLCAkdGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyVzcGFuJScgKyAkdGV4dC5zcGxpdCgnICcpLmpvaW4oJyUvc3BhbiUgJXNwYW4lJykgKyAnJS9zcGFuJSc7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAkZWwuaW5uZXJIVE1MID0gJGVsLmlubmVySFRNTC5zcGxpdCgnJXNwYW4lJykuam9pbignPHNwYW4+Jykuc3BsaXQoJyUvc3BhbiUnKS5qb2luKCc8L3NwYW4+Jyk7XG4gICAgICAgICAgICAgICAgICAgIHNoaWZ0ID0gMjUwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1zcGxpdCcpID09PSAnbGluZScpIHtcbiAgICAgICAgICAgICAgICAgICAgJGVsLmlubmVySFRNTCA9ICc8c3Bhbj4nICsgJGVsLmlubmVySFRNTC5zcGxpdCgnPGJyPicpLmpvaW4oJzwvc3Bhbj48YnIvPjxzcGFuPicpICsgJzwvc3Bhbj4nO1xuICAgICAgICAgICAgICAgICAgICBzaGlmdCA9IDUwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAkZWwucXVlcnlTZWxlY3RvckFsbCgnc3BhbicpLmZvckVhY2goKCRlbDIsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRlbDIuaW5uZXJUZXh0LnRyaW0oKSA9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICRlbDIuc2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlJywgJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZScpKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRlbGF5ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtZGVsYXknKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXkgPSBwYXJzZUludCgkZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLWRlbGF5JykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICgkZWwuaGFzQXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLXNwZWVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbDIuc2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLXNwZWVkJywgJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1zcGVlZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5ICo9IDEgLyBwYXJzZUludCgkZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLXNwZWVkJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICRlbDIuc2V0QXR0cmlidXRlKCdkYXRhLWxhbmltYXRlLWRlbGF5JywgZGVsYXkgKyBzaGlmdCAqIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkZWwucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWxhbmltYXRlJyk7XG4gICAgICAgICAgICAgICAgJGVsLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1kZWxheScpO1xuICAgICAgICAgICAgICAgICRlbC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3BlZWQnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1sYW5pbWF0ZS1zcGVlZF0nKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1sYW5pbWF0ZS1zcGVlZF0nKS5mb3JFYWNoKCRlbCA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHNwZWVkID0gcGFyc2VJbnQoJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1zcGVlZCcpKSAvIDEwMDA7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICRlbC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBzcGVlZCArICdzLCAnICsgc3BlZWQgKyAncyc7XG4gICAgICAgICAgICAgICAgfSwgMTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhbmltYXRlXScpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWxhbmltYXRlXScpLmZvckVhY2goJGVsID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0KCRlbCk7XG4gICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydCgkZWwpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZG9jdW1lbnQuaGVhZC5pbnNlcnRBZGphY2VudEhUTUwoXG4gICAgICAgICAgICAnYmVmb3JlZW5kJyxcbiAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZT0nZmFkZSddIHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3Njcm9sbFgnXSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3Njcm9sbFknXSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3NjYWxlJ10ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgdHJhbnNsYXRlWSgzMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3JvdGF0ZSddIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFtkYXRhLWxhbmltYXRlLXN0YXJ0ZWRdIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIDFzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZS1zcGxpdF0gc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZT0nZmFkZSddW2RhdGEtbGFuaW1hdGUtc3RhcnRlZF0ge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBbZGF0YS1sYW5pbWF0ZT0nc2Nyb2xsWCddW2RhdGEtbGFuaW1hdGUtc3RhcnRlZF0ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3Njcm9sbFknXVtkYXRhLWxhbmltYXRlLXN0YXJ0ZWRdIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFtkYXRhLWxhbmltYXRlPSdzY2FsZSddW2RhdGEtbGFuaW1hdGUtc3RhcnRlZF0ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgW2RhdGEtbGFuaW1hdGU9J3JvdGF0ZSddW2RhdGEtbGFuaW1hdGUtc3RhcnRlZF0ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3N0eWxlPlxuICAgICAgICAgICAgYFxuICAgICAgICApO1xuICAgIH1cbiAgICBzdGFydCgkZWwpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgISRlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3RhcnRlZCcpICYmXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvcCgpICsgd2luZG93LmlubmVySGVpZ2h0ID49IHRoaXMub2Zmc2V0VG9wKCRlbClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBsZXQgZGVsYXkgPSAwO1xuICAgICAgICAgICAgaWYgKCRlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtZGVsYXknKSkge1xuICAgICAgICAgICAgICAgIGRlbGF5ID0gcGFyc2VJbnQoJGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1sYW5pbWF0ZS1kZWxheScpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRlbC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuaW1hdGUtc3RhcnRlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICB9LCBkZWxheSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2Nyb2xsVG9wKCkge1xuICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICByZXR1cm4gKHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2Muc2Nyb2xsVG9wKSAtIChkb2MuY2xpZW50VG9wIHx8IDApO1xuICAgIH1cbiAgICBvZmZzZXRUb3AoJGVsKSB7XG4gICAgICAgIHJldHVybiAkZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnBhZ2VZT2Zmc2V0IC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFRvcDtcbiAgICB9XG59XG5cbndpbmRvdy5sYW5pbWF0ZSA9IGxhbmltYXRlO1xuIiwiZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY2xhc3NDYWxsQ2hlY2ssIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFwicHJvdG90eXBlXCIsIHtcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfY3JlYXRlQ2xhc3MsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiLCJmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgIFwiZGVmYXVsdFwiOiBvYmpcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il19
1
+ !function t(e,a,n){function r(l,s){if(!a[l]){if(!e[l]){var o="function"==typeof require&&require;if(!s&&o)return o(l,!0);if(i)return i(l,!0);var d=new Error("Cannot find module '"+l+"'");throw d.code="MODULE_NOT_FOUND",d}var u=a[l]={exports:{}};e[l][0].call(u.exports,(function(t){return r(e[l][1][t]||t)}),u,u.exports,t,e,a,n)}return a[l].exports}for(var i="function"==typeof require&&require,l=0;l<n.length;l++)r(n[l]);return r}({1:[function(t,e,a){"use strict";var n=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0;var r=n(t("@babel/runtime/helpers/classCallCheck")),i=n(t("@babel/runtime/helpers/createClass")),l=function(){function t(){var e=this;(0,r.default)(this,t),document.addEventListener("DOMContentLoaded",(function(){e.ready()})),window.addEventListener("load",(function(){e.load()}))}return(0,i.default)(t,[{key:"ready",value:function(){document.head.insertAdjacentHTML("beforeend","\n <style>\n [data-lanimate] {\n opacity: 0;\n }\n /* disable on mobile */\n @media screen and (max-width: 1100px) {\n [data-lanimate] {\n transition: all 0s ease 0s;\n opacity: 1;\n }\n [data-lanimate='scrollX'] {\n transform: translateX(0px);\n }\n [data-lanimate='scrollY'] {\n transform: translateX(0px);\n }\n [data-lanimate='scale'] {\n transform: scale(1) translateY(0px);\n }\n [data-lanimate='rotate'] {\n transform: rotate(0deg);\n }\n }\n </style>\n ")}},{key:"traverseAllTextNodes",value:function(t,e){var a=this;t.childNodes.length>0&&t.childNodes.forEach((function(t){3===t.nodeType?t.textContent=e(t.textContent):a.traverseAllTextNodes(t,e)}))}},{key:"load",value:function(){var t=this;document.querySelectorAll("[data-lanimate-split]").length>0&&document.querySelectorAll("[data-lanimate-split]").forEach((function(e){e.setAttribute("data-aria-label",e.innerText.replace(/(?:\r\n|\r|\n)/g," ")),e.innerHTML=e.innerHTML.split(" ").join("&nbsp;");var a=0;"char"===e.getAttribute("data-lanimate-split")&&(t.traverseAllTextNodes(e,(function(t){return"%span%"+t.split("").join("%/span%%span%")+"%/span%"})),e.innerHTML=e.innerHTML.split("%span%").join("<span>").split("%/span%").join("</span>"),a=100),"word"===e.getAttribute("data-lanimate-split")&&(t.traverseAllTextNodes(e,(function(t){return"%span%"+t.split(" ").join("%/span% %span%")+"%/span%"})),e.innerHTML=e.innerHTML.split("%span%").join("<span>").split("%/span%").join("</span>"),a=250),"line"===e.getAttribute("data-lanimate-split")&&(e.innerHTML="<span>"+e.innerHTML.split("<br>").join("</span><br/><span>")+"</span>",a=500);var n=0;e.querySelectorAll("span").forEach((function(t,r){if(""!=t.innerText.trim()){t.setAttribute("data-lanimate",e.getAttribute("data-lanimate"));var i=0;e.hasAttribute("data-lanimate-delay")&&(i=parseInt(e.getAttribute("data-lanimate-delay"))),e.hasAttribute("data-lanimate-speed")&&(t.setAttribute("data-lanimate-speed",e.getAttribute("data-lanimate-speed")),i*=1/parseInt(e.getAttribute("data-lanimate-speed"))),t.setAttribute("data-lanimate-delay",i+a*n),n++}})),e.removeAttribute("data-lanimate"),e.removeAttribute("data-lanimate-delay"),e.removeAttribute("data-lanimate-speed")})),document.querySelectorAll("[data-lanimate-speed]").length>0&&document.querySelectorAll("[data-lanimate-speed]").forEach((function(t){var e=parseInt(t.getAttribute("data-lanimate-speed"))/1e3;setTimeout((function(){t.style.transitionDuration=e+"s, "+e+"s"}),10)})),document.querySelectorAll("[data-lanimate]").length>0&&document.querySelectorAll("[data-lanimate]").forEach((function(e){t.start(e),window.addEventListener("scroll",(function(){t.start(e)}))})),document.head.insertAdjacentHTML("beforeend","\n <style>\n [data-lanimate='fade'] {\n }\n [data-lanimate='scrollX'] {\n transform: translateX(30px);\n }\n [data-lanimate='scrollY'] {\n transform: translateY(30px);\n }\n [data-lanimate='scale'] {\n transform: scale(1.1) translateY(30px);\n }\n [data-lanimate='rotate'] {\n transform: rotate(15deg);\n transform-origin: 0 0;\n }\n [data-lanimate-started] {\n transition: opacity 1s ease-in-out, transform 1s ease-in-out;\n opacity: 1;\n }\n [data-lanimate-split] span {\n display:inline-block;\n }\n [data-lanimate='fade'][data-lanimate-started] {\n }\n [data-lanimate='scrollX'][data-lanimate-started] {\n transform: translateX(0px);\n }\n [data-lanimate='scrollY'][data-lanimate-started] {\n transform: translateX(0px);\n }\n [data-lanimate='scale'][data-lanimate-started] {\n transform: scale(1) translateY(0px);\n }\n [data-lanimate='rotate'][data-lanimate-started] {\n transform: rotate(0deg);\n }\n </style>\n ")}},{key:"start",value:function(t){if(!t.hasAttribute("data-lanimate-started")&&this.scrollTop()+window.innerHeight>=this.offsetTop(t)){var e=0;t.hasAttribute("data-lanimate-delay")&&(e=parseInt(t.getAttribute("data-lanimate-delay"))),setTimeout((function(){t.setAttribute("data-lanimate-started","true")}),e)}}},{key:"scrollTop",value:function(){var t=document.documentElement;return(window.pageYOffset||t.scrollTop)-(t.clientTop||0)}},{key:"offsetTop",value:function(t){return t.getBoundingClientRect().top+window.pageYOffset-document.documentElement.clientTop}}]),t}();a.default=l,window.lanimate=l},{"@babel/runtime/helpers/classCallCheck":2,"@babel/runtime/helpers/createClass":3,"@babel/runtime/helpers/interopRequireDefault":4}],2:[function(t,e,a){e.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},{}],3:[function(t,e,a){function n(t,e){for(var a=0;a<e.length;a++){var n=e[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}e.exports=function(t,e,a){return e&&n(t.prototype,e),a&&n(t,a),Object.defineProperty(t,"prototype",{writable:!1}),t},e.exports.__esModule=!0,e.exports.default=e.exports},{}],4:[function(t,e,a){e.exports=function(t){return t&&t.__esModule?t:{default:t}},e.exports.__esModule=!0,e.exports.default=e.exports},{}]},{},[1]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lanimate",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "main": "_build/script.js",
5
5
  "files": [
6
6
  "_build/*.js",