@rethink-js/rt-smooth-scroll 1.0.0
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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/index.js +493 -0
- package/dist/index.js.map +7 -0
- package/dist/index.min.js +3 -0
- package/dist/index.min.js.map +7 -0
- package/package.json +28 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Rethink JS
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# rt-smooth-scroll
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
/*! @rethink-js/rt-smooth-scroll v1.0.0 | MIT */
|
|
2
|
+
(() => {
|
|
3
|
+
// src/index.js
|
|
4
|
+
(function() {
|
|
5
|
+
var RT_NS = "rtSmoothScroll";
|
|
6
|
+
if (window[RT_NS] && window[RT_NS].__initialized) return;
|
|
7
|
+
function getAttrFrom(el, name) {
|
|
8
|
+
if (!el) return null;
|
|
9
|
+
if (!el.hasAttribute(name)) return null;
|
|
10
|
+
return el.getAttribute(name);
|
|
11
|
+
}
|
|
12
|
+
function getAttr(name) {
|
|
13
|
+
var html = document.documentElement;
|
|
14
|
+
var body = document.body;
|
|
15
|
+
var v = getAttrFrom(html, name);
|
|
16
|
+
if (v !== null) return v;
|
|
17
|
+
v = getAttrFrom(body, name);
|
|
18
|
+
if (v !== null) return v;
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
function hasAttrAnywhere(name) {
|
|
22
|
+
var html = document.documentElement;
|
|
23
|
+
var body = document.body;
|
|
24
|
+
if (html && html.hasAttribute(name)) return true;
|
|
25
|
+
if (body && body.hasAttribute(name)) return true;
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
function parseBool(v, def) {
|
|
29
|
+
if (v === null || v === void 0) return def;
|
|
30
|
+
var s = String(v).trim().toLowerCase();
|
|
31
|
+
if (s === "") return true;
|
|
32
|
+
if (s === "true" || s === "1" || s === "yes" || s === "y" || s === "on")
|
|
33
|
+
return true;
|
|
34
|
+
if (s === "false" || s === "0" || s === "no" || s === "n" || s === "off")
|
|
35
|
+
return false;
|
|
36
|
+
return def;
|
|
37
|
+
}
|
|
38
|
+
function parseNum(v, def) {
|
|
39
|
+
if (v === null || v === void 0) return def;
|
|
40
|
+
var n = Number(v);
|
|
41
|
+
return Number.isFinite(n) ? n : def;
|
|
42
|
+
}
|
|
43
|
+
function parseStr(v, def) {
|
|
44
|
+
if (v === null || v === void 0) return def;
|
|
45
|
+
var s = String(v);
|
|
46
|
+
return s.length ? s : def;
|
|
47
|
+
}
|
|
48
|
+
function clamp01(t) {
|
|
49
|
+
if (t < 0) return 0;
|
|
50
|
+
if (t > 1) return 1;
|
|
51
|
+
return t;
|
|
52
|
+
}
|
|
53
|
+
function easingByName(name) {
|
|
54
|
+
var n = String(name || "").trim();
|
|
55
|
+
if (!n) return null;
|
|
56
|
+
var easings = {
|
|
57
|
+
linear: function(t) {
|
|
58
|
+
return clamp01(t);
|
|
59
|
+
},
|
|
60
|
+
easeInQuad: function(t) {
|
|
61
|
+
t = clamp01(t);
|
|
62
|
+
return t * t;
|
|
63
|
+
},
|
|
64
|
+
easeOutQuad: function(t) {
|
|
65
|
+
t = clamp01(t);
|
|
66
|
+
return t * (2 - t);
|
|
67
|
+
},
|
|
68
|
+
easeInOutQuad: function(t) {
|
|
69
|
+
t = clamp01(t);
|
|
70
|
+
return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;
|
|
71
|
+
},
|
|
72
|
+
easeInCubic: function(t) {
|
|
73
|
+
t = clamp01(t);
|
|
74
|
+
return t * t * t;
|
|
75
|
+
},
|
|
76
|
+
easeOutCubic: function(t) {
|
|
77
|
+
t = clamp01(t);
|
|
78
|
+
return 1 - Math.pow(1 - t, 3);
|
|
79
|
+
},
|
|
80
|
+
easeInOutCubic: function(t) {
|
|
81
|
+
t = clamp01(t);
|
|
82
|
+
return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
|
|
83
|
+
},
|
|
84
|
+
easeInOutSine: function(t) {
|
|
85
|
+
t = clamp01(t);
|
|
86
|
+
return -(Math.cos(Math.PI * t) - 1) / 2;
|
|
87
|
+
},
|
|
88
|
+
easeOutExpo: function(t) {
|
|
89
|
+
t = clamp01(t);
|
|
90
|
+
return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
return easings[n] || null;
|
|
94
|
+
}
|
|
95
|
+
function hasAnyConfigOn(el) {
|
|
96
|
+
if (!el) return false;
|
|
97
|
+
for (var i = 0; i < el.attributes.length; i++) {
|
|
98
|
+
var n = el.attributes[i].name;
|
|
99
|
+
if (n && n.indexOf("rt-smooth-scroll-") === 0) return true;
|
|
100
|
+
}
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
function ensureDefaultsIfNeeded() {
|
|
104
|
+
var body = document.body;
|
|
105
|
+
var html = document.documentElement;
|
|
106
|
+
if (!body) return;
|
|
107
|
+
var instances = document.querySelectorAll("[rt-smooth-scroll-instance]");
|
|
108
|
+
var hasInstances = instances && instances.length > 0;
|
|
109
|
+
if (!hasAttrAnywhere("rt-smooth-scroll") && !hasInstances)
|
|
110
|
+
body.setAttribute("rt-smooth-scroll", "");
|
|
111
|
+
var configured = hasAnyConfigOn(html) || hasAnyConfigOn(body);
|
|
112
|
+
if (configured || hasInstances) return;
|
|
113
|
+
var defaults = {
|
|
114
|
+
"rt-smooth-scroll-lerp": "0.25",
|
|
115
|
+
"rt-smooth-scroll-orientation": "vertical",
|
|
116
|
+
"rt-smooth-scroll-gesture-orientation": "vertical",
|
|
117
|
+
"rt-smooth-scroll-normalize-wheel": "true",
|
|
118
|
+
"rt-smooth-scroll-wheel-multiplier": "1",
|
|
119
|
+
"rt-smooth-scroll-easing": "easeOutCubic",
|
|
120
|
+
"rt-smooth-scroll-smooth-touch": "true",
|
|
121
|
+
"rt-smooth-scroll-sync-touch": "true",
|
|
122
|
+
"rt-smooth-scroll-sync-touch-lerp": "0",
|
|
123
|
+
"rt-smooth-scroll-touch-inertia-multiplier": "10",
|
|
124
|
+
"rt-smooth-scroll-touch-multiplier": "2"
|
|
125
|
+
};
|
|
126
|
+
for (var k in defaults) {
|
|
127
|
+
if (!html.hasAttribute(k) && !body.hasAttribute(k))
|
|
128
|
+
body.setAttribute(k, defaults[k]);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function readOptions(getLocal) {
|
|
132
|
+
var prefix = "rt-smooth-scroll-";
|
|
133
|
+
function localOrGlobal(name) {
|
|
134
|
+
var v = getLocal(name);
|
|
135
|
+
if (v !== null && v !== void 0) return v;
|
|
136
|
+
return getAttr(name);
|
|
137
|
+
}
|
|
138
|
+
var rawDuration = localOrGlobal(prefix + "duration");
|
|
139
|
+
var rawLerp = localOrGlobal(prefix + "lerp");
|
|
140
|
+
var hasDuration = rawDuration !== null && rawDuration !== void 0 && String(rawDuration).trim() !== "";
|
|
141
|
+
var hasLerp = rawLerp !== null && rawLerp !== void 0 && String(rawLerp).trim() !== "";
|
|
142
|
+
var duration = parseNum(rawDuration, 1.15);
|
|
143
|
+
var lerp = parseNum(rawLerp, 0.25);
|
|
144
|
+
if (hasDuration && !hasLerp) {
|
|
145
|
+
lerp = 0;
|
|
146
|
+
}
|
|
147
|
+
var orientation = parseStr(
|
|
148
|
+
localOrGlobal(prefix + "orientation"),
|
|
149
|
+
"vertical"
|
|
150
|
+
);
|
|
151
|
+
var gestureOrientation = parseStr(
|
|
152
|
+
localOrGlobal(prefix + "gesture-orientation"),
|
|
153
|
+
"vertical"
|
|
154
|
+
);
|
|
155
|
+
var normalizeWheel = parseBool(
|
|
156
|
+
localOrGlobal(prefix + "normalize-wheel"),
|
|
157
|
+
true
|
|
158
|
+
);
|
|
159
|
+
var wheelMultiplier = parseNum(
|
|
160
|
+
localOrGlobal(prefix + "wheel-multiplier"),
|
|
161
|
+
1
|
|
162
|
+
);
|
|
163
|
+
var smoothTouch = parseBool(localOrGlobal(prefix + "smooth-touch"), true);
|
|
164
|
+
var syncTouch = parseBool(localOrGlobal(prefix + "sync-touch"), true);
|
|
165
|
+
var syncTouchLerp = parseNum(localOrGlobal(prefix + "sync-touch-lerp"), 0);
|
|
166
|
+
var touchInertiaMultiplier = parseNum(
|
|
167
|
+
localOrGlobal(prefix + "touch-inertia-multiplier"),
|
|
168
|
+
10
|
|
169
|
+
);
|
|
170
|
+
var touchMultiplier = parseNum(
|
|
171
|
+
localOrGlobal(prefix + "touch-multiplier"),
|
|
172
|
+
2
|
|
173
|
+
);
|
|
174
|
+
var infinite = parseBool(localOrGlobal(prefix + "infinite"), false);
|
|
175
|
+
var easingName = parseStr(localOrGlobal(prefix + "easing"), "easeOutCubic");
|
|
176
|
+
var easingFn = easingByName(easingName);
|
|
177
|
+
var opts = {
|
|
178
|
+
lerp,
|
|
179
|
+
orientation,
|
|
180
|
+
gestureOrientation,
|
|
181
|
+
normalizeWheel,
|
|
182
|
+
wheelMultiplier,
|
|
183
|
+
smoothTouch,
|
|
184
|
+
syncTouch,
|
|
185
|
+
syncTouchLerp,
|
|
186
|
+
touchInertiaMultiplier,
|
|
187
|
+
touchMultiplier,
|
|
188
|
+
infinite
|
|
189
|
+
};
|
|
190
|
+
if (lerp === 0) {
|
|
191
|
+
opts.duration = duration;
|
|
192
|
+
}
|
|
193
|
+
if (easingFn) opts.easing = easingFn;
|
|
194
|
+
var extra = localOrGlobal(prefix + "options-json");
|
|
195
|
+
if (extra) {
|
|
196
|
+
try {
|
|
197
|
+
var parsed = JSON.parse(extra);
|
|
198
|
+
if (parsed && typeof parsed === "object") {
|
|
199
|
+
for (var k in parsed) opts[k] = parsed[k];
|
|
200
|
+
}
|
|
201
|
+
} catch (e) {
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return opts;
|
|
205
|
+
}
|
|
206
|
+
function loadScriptOnce(src) {
|
|
207
|
+
return new Promise(function(resolve, reject) {
|
|
208
|
+
if (typeof window.Lenis !== "undefined") return resolve();
|
|
209
|
+
var existing = document.querySelector('script[data-rt-lenis="true"]');
|
|
210
|
+
if (existing) {
|
|
211
|
+
existing.addEventListener("load", function() {
|
|
212
|
+
resolve();
|
|
213
|
+
});
|
|
214
|
+
existing.addEventListener("error", function(e) {
|
|
215
|
+
reject(e);
|
|
216
|
+
});
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
var s = document.createElement("script");
|
|
220
|
+
s.src = src;
|
|
221
|
+
s.async = true;
|
|
222
|
+
s.dataset.rtLenis = "true";
|
|
223
|
+
s.onload = function() {
|
|
224
|
+
resolve();
|
|
225
|
+
};
|
|
226
|
+
s.onerror = function(e) {
|
|
227
|
+
reject(e);
|
|
228
|
+
};
|
|
229
|
+
document.head.appendChild(s);
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
function init() {
|
|
233
|
+
ensureDefaultsIfNeeded();
|
|
234
|
+
var enabledRoot = hasAttrAnywhere("rt-smooth-scroll");
|
|
235
|
+
var instanceEls = document.querySelectorAll("[rt-smooth-scroll-instance]");
|
|
236
|
+
var shouldRun = enabledRoot || instanceEls && instanceEls.length > 0;
|
|
237
|
+
if (!shouldRun) return;
|
|
238
|
+
var lenisSrc = parseStr(
|
|
239
|
+
getAttr("rt-smooth-scroll-lenis-src"),
|
|
240
|
+
"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"
|
|
241
|
+
);
|
|
242
|
+
var observeResize = parseBool(
|
|
243
|
+
getAttr("rt-smooth-scroll-observe-resize"),
|
|
244
|
+
true
|
|
245
|
+
);
|
|
246
|
+
var observeMutations = parseBool(
|
|
247
|
+
getAttr("rt-smooth-scroll-observe-mutations"),
|
|
248
|
+
true
|
|
249
|
+
);
|
|
250
|
+
var resizeDebounceMs = parseNum(
|
|
251
|
+
getAttr("rt-smooth-scroll-resize-debounce-ms"),
|
|
252
|
+
0
|
|
253
|
+
);
|
|
254
|
+
var state = {
|
|
255
|
+
destroyed: false,
|
|
256
|
+
rafId: 0,
|
|
257
|
+
instances: {},
|
|
258
|
+
order: [],
|
|
259
|
+
observers: {},
|
|
260
|
+
resizeTimers: {}
|
|
261
|
+
};
|
|
262
|
+
function scheduleResize(id) {
|
|
263
|
+
var inst = state.instances[id];
|
|
264
|
+
if (!inst || state.destroyed) return;
|
|
265
|
+
if (resizeDebounceMs > 0) {
|
|
266
|
+
clearTimeout(state.resizeTimers[id]);
|
|
267
|
+
state.resizeTimers[id] = setTimeout(function() {
|
|
268
|
+
var i2 = state.instances[id];
|
|
269
|
+
if (!i2 || state.destroyed) return;
|
|
270
|
+
i2.resize();
|
|
271
|
+
}, resizeDebounceMs);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
inst.resize();
|
|
275
|
+
}
|
|
276
|
+
function startRaf() {
|
|
277
|
+
function raf(time) {
|
|
278
|
+
if (state.destroyed) return;
|
|
279
|
+
for (var i = 0; i < state.order.length; i++) {
|
|
280
|
+
var id = state.order[i];
|
|
281
|
+
var inst = state.instances[id];
|
|
282
|
+
if (inst) inst.raf(time);
|
|
283
|
+
}
|
|
284
|
+
state.rafId = requestAnimationFrame(raf);
|
|
285
|
+
}
|
|
286
|
+
state.rafId = requestAnimationFrame(raf);
|
|
287
|
+
}
|
|
288
|
+
function addObservers(id, wrapperEl) {
|
|
289
|
+
if (!wrapperEl || wrapperEl === window) return;
|
|
290
|
+
var ro = null;
|
|
291
|
+
var mo = null;
|
|
292
|
+
if (observeResize && typeof ResizeObserver !== "undefined") {
|
|
293
|
+
ro = new ResizeObserver(function() {
|
|
294
|
+
scheduleResize(id);
|
|
295
|
+
});
|
|
296
|
+
ro.observe(wrapperEl);
|
|
297
|
+
}
|
|
298
|
+
if (observeMutations && typeof MutationObserver !== "undefined") {
|
|
299
|
+
mo = new MutationObserver(function() {
|
|
300
|
+
scheduleResize(id);
|
|
301
|
+
});
|
|
302
|
+
mo.observe(wrapperEl, { childList: true, subtree: true });
|
|
303
|
+
}
|
|
304
|
+
state.observers[id] = { ro, mo };
|
|
305
|
+
}
|
|
306
|
+
function removeObservers(id) {
|
|
307
|
+
var obs = state.observers[id];
|
|
308
|
+
if (!obs) return;
|
|
309
|
+
if (obs.ro) obs.ro.disconnect();
|
|
310
|
+
if (obs.mo) obs.mo.disconnect();
|
|
311
|
+
delete state.observers[id];
|
|
312
|
+
}
|
|
313
|
+
function sanitizeOptionsForLog(opts) {
|
|
314
|
+
var out = {};
|
|
315
|
+
for (var k in opts) {
|
|
316
|
+
if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;
|
|
317
|
+
var v = opts[k];
|
|
318
|
+
if (typeof v === "function") {
|
|
319
|
+
out[k] = "[Function]";
|
|
320
|
+
} else {
|
|
321
|
+
out[k] = v;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return out;
|
|
325
|
+
}
|
|
326
|
+
function createInstance(id, wrapper, content, options) {
|
|
327
|
+
var opts = options || {};
|
|
328
|
+
if (wrapper) opts.wrapper = wrapper;
|
|
329
|
+
if (content) opts.content = content;
|
|
330
|
+
var inst = new window.Lenis(opts);
|
|
331
|
+
state.instances[id] = inst;
|
|
332
|
+
state.order.push(id);
|
|
333
|
+
if (wrapper && wrapper !== window) addObservers(id, wrapper);
|
|
334
|
+
if (id === "root") window.lenis = inst;
|
|
335
|
+
try {
|
|
336
|
+
console.log("[rt-smooth-scroll] instance:", id, {
|
|
337
|
+
wrapper: wrapper === window ? "window" : wrapper,
|
|
338
|
+
content: content || null,
|
|
339
|
+
options: sanitizeOptionsForLog(opts)
|
|
340
|
+
});
|
|
341
|
+
} catch (e) {
|
|
342
|
+
}
|
|
343
|
+
return inst;
|
|
344
|
+
}
|
|
345
|
+
function getContentForWrapper(wrapperEl) {
|
|
346
|
+
var selector = getAttrFrom(wrapperEl, "rt-smooth-scroll-content");
|
|
347
|
+
if (selector) {
|
|
348
|
+
var found = wrapperEl.querySelector(selector);
|
|
349
|
+
if (found) return found;
|
|
350
|
+
}
|
|
351
|
+
return wrapperEl.firstElementChild || wrapperEl;
|
|
352
|
+
}
|
|
353
|
+
function makeApi() {
|
|
354
|
+
function forEachTarget(id, fn) {
|
|
355
|
+
if (typeof id === "string" && id.length) {
|
|
356
|
+
var one = state.instances[id];
|
|
357
|
+
if (one) fn(id, one);
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
for (var i = 0; i < state.order.length; i++) {
|
|
361
|
+
var k = state.order[i];
|
|
362
|
+
var inst = state.instances[k];
|
|
363
|
+
if (inst) fn(k, inst);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return {
|
|
367
|
+
__initialized: true,
|
|
368
|
+
ids: function() {
|
|
369
|
+
return state.order.slice();
|
|
370
|
+
},
|
|
371
|
+
get: function(id) {
|
|
372
|
+
return state.instances[id] || null;
|
|
373
|
+
},
|
|
374
|
+
start: function(id) {
|
|
375
|
+
forEachTarget(id, function(_, inst) {
|
|
376
|
+
inst.start();
|
|
377
|
+
});
|
|
378
|
+
},
|
|
379
|
+
stop: function(id) {
|
|
380
|
+
forEachTarget(id, function(_, inst) {
|
|
381
|
+
inst.stop();
|
|
382
|
+
});
|
|
383
|
+
},
|
|
384
|
+
toggle: function(id, force) {
|
|
385
|
+
forEachTarget(id, function(_, inst) {
|
|
386
|
+
if (typeof force === "boolean") {
|
|
387
|
+
if (force) inst.stop();
|
|
388
|
+
else inst.start();
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
if (inst.isStopped) inst.start();
|
|
392
|
+
else inst.stop();
|
|
393
|
+
});
|
|
394
|
+
},
|
|
395
|
+
resize: function(id) {
|
|
396
|
+
forEachTarget(id, function(k) {
|
|
397
|
+
scheduleResize(k);
|
|
398
|
+
});
|
|
399
|
+
},
|
|
400
|
+
destroy: function(id) {
|
|
401
|
+
if (state.destroyed) return;
|
|
402
|
+
function destroyOne(k) {
|
|
403
|
+
clearTimeout(state.resizeTimers[k]);
|
|
404
|
+
removeObservers(k);
|
|
405
|
+
var inst = state.instances[k];
|
|
406
|
+
if (inst) {
|
|
407
|
+
try {
|
|
408
|
+
inst.destroy();
|
|
409
|
+
} catch (e) {
|
|
410
|
+
}
|
|
411
|
+
delete state.instances[k];
|
|
412
|
+
}
|
|
413
|
+
var idx = state.order.indexOf(k);
|
|
414
|
+
if (idx >= 0) state.order.splice(idx, 1);
|
|
415
|
+
if (k === "root") {
|
|
416
|
+
try {
|
|
417
|
+
delete window.lenis;
|
|
418
|
+
} catch (e) {
|
|
419
|
+
window.lenis = void 0;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
if (typeof id === "string" && id.length) {
|
|
424
|
+
destroyOne(id);
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
while (state.order.length) destroyOne(state.order[0]);
|
|
428
|
+
state.destroyed = true;
|
|
429
|
+
if (state.rafId) cancelAnimationFrame(state.rafId);
|
|
430
|
+
}
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
function installLegacyAliases(api) {
|
|
434
|
+
window.disableScroll = function() {
|
|
435
|
+
api.stop();
|
|
436
|
+
if (document.body) document.body.classList.add("no-scroll");
|
|
437
|
+
};
|
|
438
|
+
window.enableScroll = function() {
|
|
439
|
+
api.start();
|
|
440
|
+
if (document.body) document.body.classList.remove("no-scroll");
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
loadScriptOnce(lenisSrc).then(function() {
|
|
444
|
+
if (state.destroyed) return;
|
|
445
|
+
if (enabledRoot && !state.instances.root) {
|
|
446
|
+
var optsRoot = readOptions(function() {
|
|
447
|
+
return null;
|
|
448
|
+
});
|
|
449
|
+
createInstance("root", window, document.documentElement, optsRoot);
|
|
450
|
+
}
|
|
451
|
+
var els = document.querySelectorAll("[rt-smooth-scroll-instance]");
|
|
452
|
+
var autoCount = 0;
|
|
453
|
+
for (var i = 0; i < els.length; i++) {
|
|
454
|
+
var el = els[i];
|
|
455
|
+
var id = getAttrFrom(el, "rt-smooth-scroll-id");
|
|
456
|
+
if (!id) {
|
|
457
|
+
autoCount++;
|
|
458
|
+
id = "instance-" + autoCount;
|
|
459
|
+
}
|
|
460
|
+
if (state.instances[id]) continue;
|
|
461
|
+
var content = getContentForWrapper(el);
|
|
462
|
+
var opts = readOptions(function(name) {
|
|
463
|
+
return getAttrFrom(el, name);
|
|
464
|
+
});
|
|
465
|
+
createInstance(id, el, content, opts);
|
|
466
|
+
}
|
|
467
|
+
startRaf();
|
|
468
|
+
var api = makeApi();
|
|
469
|
+
window[RT_NS] = api;
|
|
470
|
+
installLegacyAliases(api);
|
|
471
|
+
window.addEventListener("resize", function() {
|
|
472
|
+
api.resize();
|
|
473
|
+
});
|
|
474
|
+
}).catch(function() {
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
if (document.readyState === "loading") {
|
|
478
|
+
document.addEventListener("DOMContentLoaded", init);
|
|
479
|
+
} else {
|
|
480
|
+
init();
|
|
481
|
+
}
|
|
482
|
+
window[RT_NS] = window[RT_NS] || {
|
|
483
|
+
__initialized: true,
|
|
484
|
+
ids: function() {
|
|
485
|
+
return [];
|
|
486
|
+
},
|
|
487
|
+
get: function() {
|
|
488
|
+
return null;
|
|
489
|
+
}
|
|
490
|
+
};
|
|
491
|
+
})();
|
|
492
|
+
})();
|
|
493
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.js"],
|
|
4
|
+
"sourcesContent": ["(function () {\n var RT_NS = \"rtSmoothScroll\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n function getAttrFrom(el, name) {\n if (!el) return null;\n if (!el.hasAttribute(name)) return null;\n return el.getAttribute(name);\n }\n\n function getAttr(name) {\n var html = document.documentElement;\n var body = document.body;\n var v = getAttrFrom(html, name);\n if (v !== null) return v;\n v = getAttrFrom(body, name);\n if (v !== null) return v;\n return null;\n }\n\n function hasAttrAnywhere(name) {\n var html = document.documentElement;\n var body = document.body;\n if (html && html.hasAttribute(name)) return true;\n if (body && body.hasAttribute(name)) return true;\n return false;\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var n = Number(v);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp01(t) {\n if (t < 0) return 0;\n if (t > 1) return 1;\n return t;\n }\n\n function easingByName(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var easings = {\n linear: function (t) {\n return clamp01(t);\n },\n easeInQuad: function (t) {\n t = clamp01(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp01(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp01(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp01(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp01(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp01(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return easings[n] || null;\n }\n\n function hasAnyConfigOn(el) {\n if (!el) return false;\n for (var i = 0; i < el.attributes.length; i++) {\n var n = el.attributes[i].name;\n if (n && n.indexOf(\"rt-smooth-scroll-\") === 0) return true;\n }\n return false;\n }\n\n function ensureDefaultsIfNeeded() {\n var body = document.body;\n var html = document.documentElement;\n if (!body) return;\n\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\n\n if (!hasAttrAnywhere(\"rt-smooth-scroll\") && !hasInstances)\n body.setAttribute(\"rt-smooth-scroll\", \"\");\n\n var configured = hasAnyConfigOn(html) || hasAnyConfigOn(body);\n if (configured || hasInstances) return;\n\n var defaults = {\n \"rt-smooth-scroll-lerp\": \"0.25\",\n \"rt-smooth-scroll-orientation\": \"vertical\",\n \"rt-smooth-scroll-gesture-orientation\": \"vertical\",\n \"rt-smooth-scroll-normalize-wheel\": \"true\",\n \"rt-smooth-scroll-wheel-multiplier\": \"1\",\n \"rt-smooth-scroll-easing\": \"easeOutCubic\",\n \"rt-smooth-scroll-smooth-touch\": \"true\",\n \"rt-smooth-scroll-sync-touch\": \"true\",\n \"rt-smooth-scroll-sync-touch-lerp\": \"0\",\n \"rt-smooth-scroll-touch-inertia-multiplier\": \"10\",\n \"rt-smooth-scroll-touch-multiplier\": \"2\",\n };\n\n for (var k in defaults) {\n if (!html.hasAttribute(k) && !body.hasAttribute(k))\n body.setAttribute(k, defaults[k]);\n }\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (v !== null && v !== undefined) return v;\n return getAttr(name);\n }\n\n var rawDuration = localOrGlobal(prefix + \"duration\");\n var rawLerp = localOrGlobal(prefix + \"lerp\");\n\n var hasDuration =\n rawDuration !== null &&\n rawDuration !== undefined &&\n String(rawDuration).trim() !== \"\";\n var hasLerp =\n rawLerp !== null &&\n rawLerp !== undefined &&\n String(rawLerp).trim() !== \"\";\n\n var duration = parseNum(rawDuration, 1.15);\n var lerp = parseNum(rawLerp, 0.25);\n\n if (hasDuration && !hasLerp) {\n lerp = 0;\n }\n\n var orientation = parseStr(\n localOrGlobal(prefix + \"orientation\"),\n \"vertical\"\n );\n var gestureOrientation = parseStr(\n localOrGlobal(prefix + \"gesture-orientation\"),\n \"vertical\"\n );\n var normalizeWheel = parseBool(\n localOrGlobal(prefix + \"normalize-wheel\"),\n true\n );\n var wheelMultiplier = parseNum(\n localOrGlobal(prefix + \"wheel-multiplier\"),\n 1\n );\n var smoothTouch = parseBool(localOrGlobal(prefix + \"smooth-touch\"), true);\n var syncTouch = parseBool(localOrGlobal(prefix + \"sync-touch\"), true);\n var syncTouchLerp = parseNum(localOrGlobal(prefix + \"sync-touch-lerp\"), 0);\n var touchInertiaMultiplier = parseNum(\n localOrGlobal(prefix + \"touch-inertia-multiplier\"),\n 10\n );\n var touchMultiplier = parseNum(\n localOrGlobal(prefix + \"touch-multiplier\"),\n 2\n );\n var infinite = parseBool(localOrGlobal(prefix + \"infinite\"), false);\n\n var easingName = parseStr(localOrGlobal(prefix + \"easing\"), \"easeOutCubic\");\n var easingFn = easingByName(easingName);\n\n var opts = {\n lerp: lerp,\n orientation: orientation,\n gestureOrientation: gestureOrientation,\n normalizeWheel: normalizeWheel,\n wheelMultiplier: wheelMultiplier,\n smoothTouch: smoothTouch,\n syncTouch: syncTouch,\n syncTouchLerp: syncTouchLerp,\n touchInertiaMultiplier: touchInertiaMultiplier,\n touchMultiplier: touchMultiplier,\n infinite: infinite,\n };\n\n if (lerp === 0) {\n opts.duration = duration;\n }\n\n if (easingFn) opts.easing = easingFn;\n\n var extra = localOrGlobal(prefix + \"options-json\");\n if (extra) {\n try {\n var parsed = JSON.parse(extra);\n if (parsed && typeof parsed === \"object\") {\n for (var k in parsed) opts[k] = parsed[k];\n }\n } catch (e) {}\n }\n\n return opts;\n }\n\n function loadScriptOnce(src) {\n return new Promise(function (resolve, reject) {\n if (typeof window.Lenis !== \"undefined\") return resolve();\n var existing = document.querySelector('script[data-rt-lenis=\"true\"]');\n if (existing) {\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n return;\n }\n var s = document.createElement(\"script\");\n s.src = src;\n s.async = true;\n s.dataset.rtLenis = \"true\";\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n });\n }\n\n function init() {\n ensureDefaultsIfNeeded();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var shouldRun = enabledRoot || (instanceEls && instanceEls.length > 0);\n if (!shouldRun) return;\n\n var lenisSrc = parseStr(\n getAttr(\"rt-smooth-scroll-lenis-src\"),\n \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\"\n );\n\n var observeResize = parseBool(\n getAttr(\"rt-smooth-scroll-observe-resize\"),\n true\n );\n var observeMutations = parseBool(\n getAttr(\"rt-smooth-scroll-observe-mutations\"),\n true\n );\n var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0\n );\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\n observers: {},\n resizeTimers: {},\n };\n\n function scheduleResize(id) {\n var inst = state.instances[id];\n if (!inst || state.destroyed) return;\n if (resizeDebounceMs > 0) {\n clearTimeout(state.resizeTimers[id]);\n state.resizeTimers[id] = setTimeout(function () {\n var i2 = state.instances[id];\n if (!i2 || state.destroyed) return;\n i2.resize();\n }, resizeDebounceMs);\n return;\n }\n inst.resize();\n }\n\n function startRaf() {\n function raf(time) {\n if (state.destroyed) return;\n for (var i = 0; i < state.order.length; i++) {\n var id = state.order[i];\n var inst = state.instances[id];\n if (inst) inst.raf(time);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n\n function addObservers(id, wrapperEl) {\n if (!wrapperEl || wrapperEl === window) return;\n\n var ro = null;\n var mo = null;\n\n if (observeResize && typeof ResizeObserver !== \"undefined\") {\n ro = new ResizeObserver(function () {\n scheduleResize(id);\n });\n ro.observe(wrapperEl);\n }\n\n if (observeMutations && typeof MutationObserver !== \"undefined\") {\n mo = new MutationObserver(function () {\n scheduleResize(id);\n });\n mo.observe(wrapperEl, { childList: true, subtree: true });\n }\n\n state.observers[id] = { ro: ro, mo: mo };\n }\n\n function removeObservers(id) {\n var obs = state.observers[id];\n if (!obs) return;\n if (obs.ro) obs.ro.disconnect();\n if (obs.mo) obs.mo.disconnect();\n delete state.observers[id];\n }\n\n function sanitizeOptionsForLog(opts) {\n var out = {};\n for (var k in opts) {\n if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;\n var v = opts[k];\n if (typeof v === \"function\") {\n out[k] = \"[Function]\";\n } else {\n out[k] = v;\n }\n }\n return out;\n }\n\n function createInstance(id, wrapper, content, options) {\n var opts = options || {};\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (wrapper && wrapper !== window) addObservers(id, wrapper);\n if (id === \"root\") window.lenis = inst;\n\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: wrapper === window ? \"window\" : wrapper,\n content: content || null,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n\n return inst;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = wrapperEl.querySelector(selector);\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function makeApi() {\n function forEachTarget(id, fn) {\n if (typeof id === \"string\" && id.length) {\n var one = state.instances[id];\n if (one) fn(id, one);\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n var inst = state.instances[k];\n if (inst) fn(k, inst);\n }\n }\n\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n start: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.start();\n });\n },\n stop: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.stop();\n });\n },\n toggle: function (id, force) {\n forEachTarget(id, function (_, inst) {\n if (typeof force === \"boolean\") {\n if (force) inst.stop();\n else inst.start();\n return;\n }\n if (inst.isStopped) inst.start();\n else inst.stop();\n });\n },\n resize: function (id) {\n forEachTarget(id, function (k) {\n scheduleResize(k);\n });\n },\n destroy: function (id) {\n if (state.destroyed) return;\n\n function destroyOne(k) {\n clearTimeout(state.resizeTimers[k]);\n removeObservers(k);\n var inst = state.instances[k];\n if (inst) {\n try {\n inst.destroy();\n } catch (e) {}\n delete state.instances[k];\n }\n var idx = state.order.indexOf(k);\n if (idx >= 0) state.order.splice(idx, 1);\n if (k === \"root\") {\n try {\n delete window.lenis;\n } catch (e) {\n window.lenis = undefined;\n }\n }\n }\n\n if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n\n while (state.order.length) destroyOne(state.order[0]);\n state.destroyed = true;\n if (state.rafId) cancelAnimationFrame(state.rafId);\n },\n };\n }\n\n function installLegacyAliases(api) {\n window.disableScroll = function () {\n api.stop();\n if (document.body) document.body.classList.add(\"no-scroll\");\n };\n window.enableScroll = function () {\n api.start();\n if (document.body) document.body.classList.remove(\"no-scroll\");\n };\n }\n\n loadScriptOnce(lenisSrc)\n .then(function () {\n if (state.destroyed) return;\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n createInstance(\"root\", window, document.documentElement, optsRoot);\n }\n\n var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var autoCount = 0;\n\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n var id = getAttrFrom(el, \"rt-smooth-scroll-id\");\n if (!id) {\n autoCount++;\n id = \"instance-\" + autoCount;\n }\n if (state.instances[id]) continue;\n\n var content = getContentForWrapper(el);\n\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n createInstance(id, el, content, opts);\n }\n\n startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n window.addEventListener(\"resize\", function () {\n api.resize();\n });\n })\n .catch(function () {});\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = window[RT_NS] || {\n __initialized: true,\n ids: function () {\n return [];\n },\n get: function () {\n return null;\n },\n };\n})();\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! @rethink-js/rt-smooth-scroll v1.0.0 | MIT */
|
|
2
|
+
(()=>{(function(){var p="rtSmoothScroll";if(window[p]&&window[p].__initialized)return;function O(o,n){return!o||!o.hasAttribute(n)?null:o.getAttribute(n)}function z(o){var n=document.documentElement,t=document.body,e=O(n,o);return e!==null||(e=O(t,o),e!==null)?e:null}function q(o){var n=document.documentElement,t=document.body;return!!(n&&n.hasAttribute(o)||t&&t.hasAttribute(o))}function g(o,n){if(o==null)return n;var t=String(o).trim().toLowerCase();return t===""||t==="true"||t==="1"||t==="yes"||t==="y"||t==="on"?!0:t==="false"||t==="0"||t==="no"||t==="n"||t==="off"?!1:n}function y(o,n){if(o==null)return n;var t=Number(o);return Number.isFinite(t)?t:n}function A(o,n){if(o==null)return n;var t=String(o);return t.length?t:n}function m(o){return o<0?0:o>1?1:o}function j(o){var n=String(o||"").trim();if(!n)return null;var t={linear:function(e){return m(e)},easeInQuad:function(e){return e=m(e),e*e},easeOutQuad:function(e){return e=m(e),e*(2-e)},easeInOutQuad:function(e){return e=m(e),e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2},easeInCubic:function(e){return e=m(e),e*e*e},easeOutCubic:function(e){return e=m(e),1-Math.pow(1-e,3)},easeInOutCubic:function(e){return e=m(e),e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2},easeInOutSine:function(e){return e=m(e),-(Math.cos(Math.PI*e)-1)/2},easeOutExpo:function(e){return e=m(e),e===1?1:1-Math.pow(2,-10*e)}};return t[n]||null}function x(o){if(!o)return!1;for(var n=0;n<o.attributes.length;n++){var t=o.attributes[n].name;if(t&&t.indexOf("rt-smooth-scroll-")===0)return!0}return!1}function P(){var o=document.body,n=document.documentElement;if(o){var t=document.querySelectorAll("[rt-smooth-scroll-instance]"),e=t&&t.length>0;!q("rt-smooth-scroll")&&!e&&o.setAttribute("rt-smooth-scroll","");var f=x(n)||x(o);if(!(f||e)){var h={"rt-smooth-scroll-lerp":"0.25","rt-smooth-scroll-orientation":"vertical","rt-smooth-scroll-gesture-orientation":"vertical","rt-smooth-scroll-normalize-wheel":"true","rt-smooth-scroll-wheel-multiplier":"1","rt-smooth-scroll-easing":"easeOutCubic","rt-smooth-scroll-smooth-touch":"true","rt-smooth-scroll-sync-touch":"true","rt-smooth-scroll-sync-touch-lerp":"0","rt-smooth-scroll-touch-inertia-multiplier":"10","rt-smooth-scroll-touch-multiplier":"2"};for(var v in h)!n.hasAttribute(v)&&!o.hasAttribute(v)&&o.setAttribute(v,h[v])}}}function E(o){var n="rt-smooth-scroll-";function t(w){var S=o(w);return S!=null?S:z(w)}var e=t(n+"duration"),f=t(n+"lerp"),h=e!=null&&String(e).trim()!=="",v=f!=null&&String(f).trim()!=="",s=y(e,1.15),b=y(f,.25);h&&!v&&(b=0);var I=A(t(n+"orientation"),"vertical"),T=A(t(n+"gesture-orientation"),"vertical"),C=g(t(n+"normalize-wheel"),!0),_=y(t(n+"wheel-multiplier"),1),L=g(t(n+"smooth-touch"),!0),F=g(t(n+"sync-touch"),!0),N=y(t(n+"sync-touch-lerp"),0),R=y(t(n+"touch-inertia-multiplier"),10),i=y(t(n+"touch-multiplier"),2),r=g(t(n+"infinite"),!1),u=A(t(n+"easing"),"easeOutCubic"),a=j(u),c={lerp:b,orientation:I,gestureOrientation:T,normalizeWheel:C,wheelMultiplier:_,smoothTouch:L,syncTouch:F,syncTouchLerp:N,touchInertiaMultiplier:R,touchMultiplier:i,infinite:r};b===0&&(c.duration=s),a&&(c.easing=a);var l=t(n+"options-json");if(l)try{var d=JSON.parse(l);if(d&&typeof d=="object")for(var M in d)c[M]=d[M]}catch(w){}return c}function Q(o){return new Promise(function(n,t){if(typeof window.Lenis!="undefined")return n();var e=document.querySelector('script[data-rt-lenis="true"]');if(e){e.addEventListener("load",function(){n()}),e.addEventListener("error",function(h){t(h)});return}var f=document.createElement("script");f.src=o,f.async=!0,f.dataset.rtLenis="true",f.onload=function(){n()},f.onerror=function(h){t(h)},document.head.appendChild(f)})}function D(){P();var o=q("rt-smooth-scroll"),n=document.querySelectorAll("[rt-smooth-scroll-instance]"),t=o||n&&n.length>0;if(!t)return;var e=A(z("rt-smooth-scroll-lenis-src"),"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"),f=g(z("rt-smooth-scroll-observe-resize"),!0),h=g(z("rt-smooth-scroll-observe-mutations"),!0),v=y(z("rt-smooth-scroll-resize-debounce-ms"),0),s={destroyed:!1,rafId:0,instances:{},order:[],observers:{},resizeTimers:{}};function b(i){var r=s.instances[i];if(!(!r||s.destroyed)){if(v>0){clearTimeout(s.resizeTimers[i]),s.resizeTimers[i]=setTimeout(function(){var u=s.instances[i];!u||s.destroyed||u.resize()},v);return}r.resize()}}function I(){function i(r){if(!s.destroyed){for(var u=0;u<s.order.length;u++){var a=s.order[u],c=s.instances[a];c&&c.raf(r)}s.rafId=requestAnimationFrame(i)}}s.rafId=requestAnimationFrame(i)}function T(i,r){if(!(!r||r===window)){var u=null,a=null;f&&typeof ResizeObserver!="undefined"&&(u=new ResizeObserver(function(){b(i)}),u.observe(r)),h&&typeof MutationObserver!="undefined"&&(a=new MutationObserver(function(){b(i)}),a.observe(r,{childList:!0,subtree:!0})),s.observers[i]={ro:u,mo:a}}}function C(i){var r=s.observers[i];r&&(r.ro&&r.ro.disconnect(),r.mo&&r.mo.disconnect(),delete s.observers[i])}function _(i){var r={};for(var u in i)if(Object.prototype.hasOwnProperty.call(i,u)){var a=i[u];typeof a=="function"?r[u]="[Function]":r[u]=a}return r}function L(i,r,u,a){var c=a||{};r&&(c.wrapper=r),u&&(c.content=u);var l=new window.Lenis(c);s.instances[i]=l,s.order.push(i),r&&r!==window&&T(i,r),i==="root"&&(window.lenis=l);try{console.log("[rt-smooth-scroll] instance:",i,{wrapper:r===window?"window":r,content:u||null,options:_(c)})}catch(d){}return l}function F(i){var r=O(i,"rt-smooth-scroll-content");if(r){var u=i.querySelector(r);if(u)return u}return i.firstElementChild||i}function N(){function i(r,u){if(typeof r=="string"&&r.length){var a=s.instances[r];a&&u(r,a);return}for(var c=0;c<s.order.length;c++){var l=s.order[c],d=s.instances[l];d&&u(l,d)}}return{__initialized:!0,ids:function(){return s.order.slice()},get:function(r){return s.instances[r]||null},start:function(r){i(r,function(u,a){a.start()})},stop:function(r){i(r,function(u,a){a.stop()})},toggle:function(r,u){i(r,function(a,c){if(typeof u=="boolean"){u?c.stop():c.start();return}c.isStopped?c.start():c.stop()})},resize:function(r){i(r,function(u){b(u)})},destroy:function(r){if(s.destroyed)return;function u(a){clearTimeout(s.resizeTimers[a]),C(a);var c=s.instances[a];if(c){try{c.destroy()}catch(d){}delete s.instances[a]}var l=s.order.indexOf(a);if(l>=0&&s.order.splice(l,1),a==="root")try{delete window.lenis}catch(d){window.lenis=void 0}}if(typeof r=="string"&&r.length){u(r);return}for(;s.order.length;)u(s.order[0]);s.destroyed=!0,s.rafId&&cancelAnimationFrame(s.rafId)}}}function R(i){window.disableScroll=function(){i.stop(),document.body&&document.body.classList.add("no-scroll")},window.enableScroll=function(){i.start(),document.body&&document.body.classList.remove("no-scroll")}}Q(e).then(function(){if(!s.destroyed){if(o&&!s.instances.root){var i=E(function(){return null});L("root",window,document.documentElement,i)}for(var r=document.querySelectorAll("[rt-smooth-scroll-instance]"),u=0,a=0;a<r.length;a++){var c=r[a],l=O(c,"rt-smooth-scroll-id");if(l||(u++,l="instance-"+u),!s.instances[l]){var d=F(c),M=E(function(S){return O(c,S)});L(l,c,d,M)}}I();var w=N();window[p]=w,R(w),window.addEventListener("resize",function(){w.resize()})}}).catch(function(){})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",D):D(),window[p]=window[p]||{__initialized:!0,ids:function(){return[]},get:function(){return null}}})();})();
|
|
3
|
+
//# sourceMappingURL=index.min.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.js"],
|
|
4
|
+
"sourcesContent": ["(function () {\n var RT_NS = \"rtSmoothScroll\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n function getAttrFrom(el, name) {\n if (!el) return null;\n if (!el.hasAttribute(name)) return null;\n return el.getAttribute(name);\n }\n\n function getAttr(name) {\n var html = document.documentElement;\n var body = document.body;\n var v = getAttrFrom(html, name);\n if (v !== null) return v;\n v = getAttrFrom(body, name);\n if (v !== null) return v;\n return null;\n }\n\n function hasAttrAnywhere(name) {\n var html = document.documentElement;\n var body = document.body;\n if (html && html.hasAttribute(name)) return true;\n if (body && body.hasAttribute(name)) return true;\n return false;\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var n = Number(v);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp01(t) {\n if (t < 0) return 0;\n if (t > 1) return 1;\n return t;\n }\n\n function easingByName(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var easings = {\n linear: function (t) {\n return clamp01(t);\n },\n easeInQuad: function (t) {\n t = clamp01(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp01(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp01(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp01(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp01(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp01(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return easings[n] || null;\n }\n\n function hasAnyConfigOn(el) {\n if (!el) return false;\n for (var i = 0; i < el.attributes.length; i++) {\n var n = el.attributes[i].name;\n if (n && n.indexOf(\"rt-smooth-scroll-\") === 0) return true;\n }\n return false;\n }\n\n function ensureDefaultsIfNeeded() {\n var body = document.body;\n var html = document.documentElement;\n if (!body) return;\n\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\n\n if (!hasAttrAnywhere(\"rt-smooth-scroll\") && !hasInstances)\n body.setAttribute(\"rt-smooth-scroll\", \"\");\n\n var configured = hasAnyConfigOn(html) || hasAnyConfigOn(body);\n if (configured || hasInstances) return;\n\n var defaults = {\n \"rt-smooth-scroll-lerp\": \"0.25\",\n \"rt-smooth-scroll-orientation\": \"vertical\",\n \"rt-smooth-scroll-gesture-orientation\": \"vertical\",\n \"rt-smooth-scroll-normalize-wheel\": \"true\",\n \"rt-smooth-scroll-wheel-multiplier\": \"1\",\n \"rt-smooth-scroll-easing\": \"easeOutCubic\",\n \"rt-smooth-scroll-smooth-touch\": \"true\",\n \"rt-smooth-scroll-sync-touch\": \"true\",\n \"rt-smooth-scroll-sync-touch-lerp\": \"0\",\n \"rt-smooth-scroll-touch-inertia-multiplier\": \"10\",\n \"rt-smooth-scroll-touch-multiplier\": \"2\",\n };\n\n for (var k in defaults) {\n if (!html.hasAttribute(k) && !body.hasAttribute(k))\n body.setAttribute(k, defaults[k]);\n }\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (v !== null && v !== undefined) return v;\n return getAttr(name);\n }\n\n var rawDuration = localOrGlobal(prefix + \"duration\");\n var rawLerp = localOrGlobal(prefix + \"lerp\");\n\n var hasDuration =\n rawDuration !== null &&\n rawDuration !== undefined &&\n String(rawDuration).trim() !== \"\";\n var hasLerp =\n rawLerp !== null &&\n rawLerp !== undefined &&\n String(rawLerp).trim() !== \"\";\n\n var duration = parseNum(rawDuration, 1.15);\n var lerp = parseNum(rawLerp, 0.25);\n\n if (hasDuration && !hasLerp) {\n lerp = 0;\n }\n\n var orientation = parseStr(\n localOrGlobal(prefix + \"orientation\"),\n \"vertical\"\n );\n var gestureOrientation = parseStr(\n localOrGlobal(prefix + \"gesture-orientation\"),\n \"vertical\"\n );\n var normalizeWheel = parseBool(\n localOrGlobal(prefix + \"normalize-wheel\"),\n true\n );\n var wheelMultiplier = parseNum(\n localOrGlobal(prefix + \"wheel-multiplier\"),\n 1\n );\n var smoothTouch = parseBool(localOrGlobal(prefix + \"smooth-touch\"), true);\n var syncTouch = parseBool(localOrGlobal(prefix + \"sync-touch\"), true);\n var syncTouchLerp = parseNum(localOrGlobal(prefix + \"sync-touch-lerp\"), 0);\n var touchInertiaMultiplier = parseNum(\n localOrGlobal(prefix + \"touch-inertia-multiplier\"),\n 10\n );\n var touchMultiplier = parseNum(\n localOrGlobal(prefix + \"touch-multiplier\"),\n 2\n );\n var infinite = parseBool(localOrGlobal(prefix + \"infinite\"), false);\n\n var easingName = parseStr(localOrGlobal(prefix + \"easing\"), \"easeOutCubic\");\n var easingFn = easingByName(easingName);\n\n var opts = {\n lerp: lerp,\n orientation: orientation,\n gestureOrientation: gestureOrientation,\n normalizeWheel: normalizeWheel,\n wheelMultiplier: wheelMultiplier,\n smoothTouch: smoothTouch,\n syncTouch: syncTouch,\n syncTouchLerp: syncTouchLerp,\n touchInertiaMultiplier: touchInertiaMultiplier,\n touchMultiplier: touchMultiplier,\n infinite: infinite,\n };\n\n if (lerp === 0) {\n opts.duration = duration;\n }\n\n if (easingFn) opts.easing = easingFn;\n\n var extra = localOrGlobal(prefix + \"options-json\");\n if (extra) {\n try {\n var parsed = JSON.parse(extra);\n if (parsed && typeof parsed === \"object\") {\n for (var k in parsed) opts[k] = parsed[k];\n }\n } catch (e) {}\n }\n\n return opts;\n }\n\n function loadScriptOnce(src) {\n return new Promise(function (resolve, reject) {\n if (typeof window.Lenis !== \"undefined\") return resolve();\n var existing = document.querySelector('script[data-rt-lenis=\"true\"]');\n if (existing) {\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n return;\n }\n var s = document.createElement(\"script\");\n s.src = src;\n s.async = true;\n s.dataset.rtLenis = \"true\";\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n });\n }\n\n function init() {\n ensureDefaultsIfNeeded();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var shouldRun = enabledRoot || (instanceEls && instanceEls.length > 0);\n if (!shouldRun) return;\n\n var lenisSrc = parseStr(\n getAttr(\"rt-smooth-scroll-lenis-src\"),\n \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\"\n );\n\n var observeResize = parseBool(\n getAttr(\"rt-smooth-scroll-observe-resize\"),\n true\n );\n var observeMutations = parseBool(\n getAttr(\"rt-smooth-scroll-observe-mutations\"),\n true\n );\n var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0\n );\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\n observers: {},\n resizeTimers: {},\n };\n\n function scheduleResize(id) {\n var inst = state.instances[id];\n if (!inst || state.destroyed) return;\n if (resizeDebounceMs > 0) {\n clearTimeout(state.resizeTimers[id]);\n state.resizeTimers[id] = setTimeout(function () {\n var i2 = state.instances[id];\n if (!i2 || state.destroyed) return;\n i2.resize();\n }, resizeDebounceMs);\n return;\n }\n inst.resize();\n }\n\n function startRaf() {\n function raf(time) {\n if (state.destroyed) return;\n for (var i = 0; i < state.order.length; i++) {\n var id = state.order[i];\n var inst = state.instances[id];\n if (inst) inst.raf(time);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n\n function addObservers(id, wrapperEl) {\n if (!wrapperEl || wrapperEl === window) return;\n\n var ro = null;\n var mo = null;\n\n if (observeResize && typeof ResizeObserver !== \"undefined\") {\n ro = new ResizeObserver(function () {\n scheduleResize(id);\n });\n ro.observe(wrapperEl);\n }\n\n if (observeMutations && typeof MutationObserver !== \"undefined\") {\n mo = new MutationObserver(function () {\n scheduleResize(id);\n });\n mo.observe(wrapperEl, { childList: true, subtree: true });\n }\n\n state.observers[id] = { ro: ro, mo: mo };\n }\n\n function removeObservers(id) {\n var obs = state.observers[id];\n if (!obs) return;\n if (obs.ro) obs.ro.disconnect();\n if (obs.mo) obs.mo.disconnect();\n delete state.observers[id];\n }\n\n function sanitizeOptionsForLog(opts) {\n var out = {};\n for (var k in opts) {\n if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;\n var v = opts[k];\n if (typeof v === \"function\") {\n out[k] = \"[Function]\";\n } else {\n out[k] = v;\n }\n }\n return out;\n }\n\n function createInstance(id, wrapper, content, options) {\n var opts = options || {};\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (wrapper && wrapper !== window) addObservers(id, wrapper);\n if (id === \"root\") window.lenis = inst;\n\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: wrapper === window ? \"window\" : wrapper,\n content: content || null,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n\n return inst;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = wrapperEl.querySelector(selector);\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function makeApi() {\n function forEachTarget(id, fn) {\n if (typeof id === \"string\" && id.length) {\n var one = state.instances[id];\n if (one) fn(id, one);\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n var inst = state.instances[k];\n if (inst) fn(k, inst);\n }\n }\n\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n start: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.start();\n });\n },\n stop: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.stop();\n });\n },\n toggle: function (id, force) {\n forEachTarget(id, function (_, inst) {\n if (typeof force === \"boolean\") {\n if (force) inst.stop();\n else inst.start();\n return;\n }\n if (inst.isStopped) inst.start();\n else inst.stop();\n });\n },\n resize: function (id) {\n forEachTarget(id, function (k) {\n scheduleResize(k);\n });\n },\n destroy: function (id) {\n if (state.destroyed) return;\n\n function destroyOne(k) {\n clearTimeout(state.resizeTimers[k]);\n removeObservers(k);\n var inst = state.instances[k];\n if (inst) {\n try {\n inst.destroy();\n } catch (e) {}\n delete state.instances[k];\n }\n var idx = state.order.indexOf(k);\n if (idx >= 0) state.order.splice(idx, 1);\n if (k === \"root\") {\n try {\n delete window.lenis;\n } catch (e) {\n window.lenis = undefined;\n }\n }\n }\n\n if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n\n while (state.order.length) destroyOne(state.order[0]);\n state.destroyed = true;\n if (state.rafId) cancelAnimationFrame(state.rafId);\n },\n };\n }\n\n function installLegacyAliases(api) {\n window.disableScroll = function () {\n api.stop();\n if (document.body) document.body.classList.add(\"no-scroll\");\n };\n window.enableScroll = function () {\n api.start();\n if (document.body) document.body.classList.remove(\"no-scroll\");\n };\n }\n\n loadScriptOnce(lenisSrc)\n .then(function () {\n if (state.destroyed) return;\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n createInstance(\"root\", window, document.documentElement, optsRoot);\n }\n\n var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var autoCount = 0;\n\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n var id = getAttrFrom(el, \"rt-smooth-scroll-id\");\n if (!id) {\n autoCount++;\n id = \"instance-\" + autoCount;\n }\n if (state.instances[id]) continue;\n\n var content = getContentForWrapper(el);\n\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n createInstance(id, el, content, opts);\n }\n\n startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n window.addEventListener(\"resize\", function () {\n api.resize();\n });\n })\n .catch(function () {});\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = window[RT_NS] || {\n __initialized: true,\n ids: function () {\n return [];\n },\n get: function () {\n return null;\n },\n };\n})();\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["RT_NS", "getAttrFrom", "el", "name", "getAttr", "html", "body", "v", "hasAttrAnywhere", "parseBool", "def", "s", "parseNum", "n", "parseStr", "clamp01", "t", "easingByName", "easings", "hasAnyConfigOn", "i", "ensureDefaultsIfNeeded", "instances", "hasInstances", "configured", "defaults", "k", "readOptions", "getLocal", "prefix", "localOrGlobal", "rawDuration", "rawLerp", "hasDuration", "hasLerp", "duration", "lerp", "orientation", "gestureOrientation", "normalizeWheel", "wheelMultiplier", "smoothTouch", "syncTouch", "syncTouchLerp", "touchInertiaMultiplier", "touchMultiplier", "infinite", "easingName", "easingFn", "opts", "extra", "parsed", "e", "loadScriptOnce", "src", "resolve", "reject", "existing", "init", "enabledRoot", "instanceEls", "shouldRun", "lenisSrc", "observeResize", "observeMutations", "resizeDebounceMs", "state", "scheduleResize", "id", "inst", "i2", "startRaf", "raf", "time", "addObservers", "wrapperEl", "ro", "mo", "removeObservers", "obs", "sanitizeOptionsForLog", "out", "createInstance", "wrapper", "content", "options", "getContentForWrapper", "selector", "found", "makeApi", "forEachTarget", "fn", "one", "_", "force", "destroyOne", "idx", "installLegacyAliases", "api", "optsRoot", "els", "autoCount"]
|
|
7
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rethink-js/rt-smooth-scroll",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Smooth scrolling using Lenis (auto-load + attribute config + multi-instance)",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/Rethink-JS/rt-smooth-scroll.git"
|
|
9
|
+
},
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/Rethink-JS/rt-smooth-scroll/issues"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/Rethink-JS/rt-smooth-scroll#readme",
|
|
14
|
+
"main": "dist/index.js",
|
|
15
|
+
"unpkg": "dist/index.min.js",
|
|
16
|
+
"jsdelivr": "dist/index.min.js",
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": true,
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "node scripts/build.mjs",
|
|
23
|
+
"prepublishOnly": "npm run build"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"esbuild": "^0.27.2"
|
|
27
|
+
}
|
|
28
|
+
}
|