PageSourceSearch

https://cdn.hanaplatform.com/js/error-handling.js

js hanaplatform.com collected 2026-09-24 14:44:34 UTC 14,471 bytes, 453 lines download raw bytes

1
2var device_width = window.screen.width;
3
4let text_animation = gsap.utils.toArray(".has_text_move_anim");
5
6if (text_animation) {
7    text_animation.forEach(splitTextLine => {
8        var delay_value = 0.1
9        if (splitTextLine.getAttribute("data-delay")) {
10            delay_value = splitTextLine.getAttribute("data-delay");
11        }
12        const tl = gsap.timeline({
13            scrollTrigger: {
14                trigger: splitTextLine,
15                start: 'top 85%',
16                duration: 1,
17                scrub: false,
18                markers: false,
19                toggleActions: 'play none none none'
20            }
21        });
22
23        const itemSplitted = new SplitText(splitTextLine, {
24            type: "lines"
25        });
26        gsap.set(splitTextLine, {
27            perspective: 400
28        });
29        itemSplitted.split({
30            type: "lines"
31        })
32        tl.from(itemSplitted.lines, {
33            duration: 1,
34            delay: delay_value,
35            opacity: 0,
36            rotationX: -80,
37            force3D: true,
38            transformOrigin: "top center -50",
39            stagger: 0.1
40        });
41    });
42}
43
44// Full Character Setup 
45var animation_char_come_items = document.querySelectorAll(".has_char_anim")
46animation_char_come_items.forEach((item) => {
47
48    var stagger_value = 0.05
49    var translateX_value = 20
50    var translateY_value = false
51    var onscroll_value = 1
52    var data_delay = 0.1
53    var data_duration = 1
54    var ease_value = "power2.out"
55
56    if (item.getAttribute("data-stagger")) {
57        stagger_value = item.getAttribute("data-stagger");
58    }
59    if (item.getAttribute("data-translateX")) {
60        translateX_value = item.getAttribute("data-translateX");
61    }
62    if (item.getAttribute("data-translateY")) {
63        translateY_value = item.getAttribute("data-translateY");
64    }
65    if (item.getAttribute("data-on-scroll")) {
66        onscroll_value = item.getAttribute("data-on-scroll");
67    }
68    if (item.getAttribute("data-delay")) {
69        data_delay = item.getAttribute("data-delay");
70    }
71    if (item.getAttribute("data-ease")) {
72        ease_value = item.getAttribute("data-ease");
73    }
74    if (item.getAttribute("data-duration")) {
75        data_duration = item.getAttribute("data-duration");
76    }
77
78    if (onscroll_value == 1) {
79        if (translateX_value > 0 && !translateY_value) {
80            let split_char = new SplitText(item, {
81                type: "chars, words"
82            });
83            gsap.from(split_char.chars, {
84                duration: data_duration,
85                delay: data_delay,
86                x: translateX_value,
87                autoAlpha: 0,
88                stagger: stagger_value,
89                ease: ease_value,
90                scrollTrigger: {
91                    trigger: item,
92                    start: 'top 85%',
93                }
94            });
95        }
96        if (translateY_value > 0 && !translateX_value) {
97            let split_char = new SplitText(item, {
98                type: "chars, words"
99            });
100            gsap.from(split_char.chars, {
101                duration: data_duration,
102                delay: data_delay,
103                y: translateY_value,
104                autoAlpha: 0,
105                ease: ease_value,
106                stagger: stagger_value,
107                scrollTrigger: {
108                    trigger: item,
109                    start: 'top 85%',
110                }
111            });
112        }
113        if (translateX_value && translateY_value) {
114            let split_char = new SplitText(item, {
115                type: "chars, words"
116            });
117            gsap.from(split_char.chars, {
118                duration: 2,
119                delay: data_delay,
120                y: translateY_value,
121                x: translateX_value,
122                autoAlpha: 0,
123                ease: ease_value,
124                stagger: stagger_value,
125                scrollTrigger: {
126                    trigger: item,
127                    start: 'top 85%',
128                }
129            });
130        }
131        if (!translateX_value && !translateY_value) {
132            let split_char = new SplitText(item, {
133                type: "chars, words"
134            });
135            gsap.from(split_char.chars, {
136                duration: 1,
137                delay: data_delay,
138                x: 50,
139                autoAlpha: 0,
140                stagger: stagger_value,
141                ease: ease_value,
142                scrollTrigger: {
143                    trigger: item,
144                    start: 'top 85%',
145                }
146            });
147        }
148    } else {
149        if (translateX_value > 0 && !translateY_value) {
150            let split_char = new SplitText(item, {
151                type: "chars, words"
152            });
153            gsap.from(split_char.chars, {
154                duration: 1,
155                delay: data_delay,
156                x: translateX_value,
157                ease: ease_value,
158                autoAlpha: 0,
159                stagger: stagger_value
160            });
161        }
162        if (translateY_value > 0 && !translateX_value) {
163            let split_char = new SplitText(item, {
164                type: "chars, words"
165            });
166            gsap.from(split_char.chars, {
167                duration: 1,
168                delay: data_delay,
169                y: translateY_value,
170                autoAlpha: 0,
171                ease: ease_value,
172                stagger: stagger_value
173            });
174        }
175        if (translateX_value && translateY_value) {
176            let split_char = new SplitText(item, {
177                type: "chars, words"
178            });
179            gsap.from(split_char.chars, {
180                duration: 1,
181                delay: data_delay,
182                y: translateY_value,
183                x: translateX_value,
184                ease: ease_value,
185                autoAlpha: 0,
186                stagger: stagger_value
187            });
188        }
189        if (!translateX_value && !translateY_value) {
190            let split_char = new SplitText(item, {
191                type: "chars, words"
192            });
193            gsap.from(split_char.chars, {
194                duration: 1,
195                delay: data_delay,
196                ease: ease_value,
197                x: 50,
198                autoAlpha: 0,
199                stagger: stagger_value
200            });
201        }
202    }
203
204});
205
206// Animation Word
207let animation_word_anim_items = document.querySelectorAll(".has_word_anim");
208
209animation_word_anim_items.forEach((word_anim_item) => {
210
211    var stagger_value = 0.04
212    var translateX_value = false
213    var translateY_value = false
214    var onscroll_value = 1
215    var data_delay = 0.1
216    var data_duration = 0.75
217
218    if (word_anim_item.getAttribute("data-stagger")) {
219        stagger_value = word_anim_item.getAttribute("data-stagger");
220    }
221    if (word_anim_item.getAttribute("data-translateX")) {
222        translateX_value = word_anim_item.getAttribute("data-translateX");
223    }
224
225    if (word_anim_item.getAttribute("data-translateY")) {
226        translateY_value = word_anim_item.getAttribute("data-translateY");
227    }
228
229    if (word_anim_item.getAttribute("data-on-scroll")) {
230        onscroll_value = word_anim_item.getAttribute("data-on-scroll");
231    }
232    if (word_anim_item.getAttribute("data-delay")) {
233        data_delay = word_anim_item.getAttribute("data-delay");
234    }
235    if (word_anim_item.getAttribute("data-duration")) {
236        data_duration = word_anim_item.getAttribute("data-duration");
237    }
238
239    if (onscroll_value == 1) {
240        if (translateX_value && !translateY_value) {
241            let split_word = new SplitText(word_anim_item, {
242                type: "chars, words"
243            })
244            gsap.from(split_word.words, {
245                duration: data_duration,
246                x: translateX_value,
247                autoAlpha: 0,
248                stagger: stagger_value,
249                delay: data_delay,
250                scrollTrigger: {
251                    trigger: word_anim_item,
252                    start: 'top 90%'
253                }
254            });
255        }
256
257        if (translateY_value && !translateX_value) {
258            let split_word = new SplitText(word_anim_item, {
259                type: "chars, words"
260            })
261            gsap.from(split_word.words, {
262                duration: 1,
263                delay: data_delay,
264                y: translateY_value,
265                autoAlpha: 0,
266                stagger: stagger_value,
267                scrollTrigger: {
268                    trigger: word_anim_item,
269                    start: 'top 90%'
270                }
271            });
272        }
273
274        if (translateY_value && translateX_value) {
275            let split_word = new SplitText(word_anim_item, {
276                type: "chars, words"
277            })
278            gsap.from(split_word.words, {
279                duration: 1,
280                delay: data_delay,
281                x: translateX_value,
282                y: translateY_value,
283                autoAlpha: 0,
284                stagger: stagger_value,
285                scrollTrigger: {
286                    trigger: word_anim_item,
287                    start: 'top 90%'
288                }
289            });
290        }
291
292        if (!translateX_value && !translateY_value) {
293            let split_word = new SplitText(word_anim_item, {
294                type: "chars, words"
295            })
296            gsap.from(split_word.words, {
297                duration: 1,
298                delay: data_delay,
299                x: 20,
300                autoAlpha: 0,
301                stagger: stagger_value,
302                scrollTrigger: {
303                    trigger: word_anim_item,
304                    start: 'top 85%',
305                }
306            });
307        }
308    } else {
309        if (translateX_value > 0 && !translateY_value) {
310            let split_word = new SplitText(word_anim_item, {
311                type: "chars, words"
312            })
313            gsap.from(split_word.words, {
314                duration: 1,
315                delay: data_delay,
316                x: translateX_value,
317                autoAlpha: 0,
318                stagger: stagger_value
319            });
320        }
321
322        if (translateY_value > 0 && !translateX_value) {
323            let split_word = new SplitText(word_anim_item, {
324                type: "chars, words"
325            })
326            gsap.from(split_word.words, {
327                duration: 1,
328                delay: data_delay,
329                y: translateY_value,
330                autoAlpha: 0,
331                stagger: stagger_value
332            });
333        }
334
335        if (translateY_value > 0 && translateX_value > 0) {
336            let split_word = new SplitText(word_anim_item, {
337                type: "chars, words"
338            })
339            gsap.from(split_word.words, {
340                duration: 1,
341                delay: data_delay,
342                x: translateX_value,
343                y: translateY_value,
344                autoAlpha: 0,
345                stagger: stagger_value
346            });
347        }
348
349        if (!translateX_value && !translateY_value) {
350            let split_word = new SplitText(word_anim_item, {
351                type: "chars, words"
352            })
353            gsap.from(split_word.words, {
354                duration: 1,
355                delay: data_delay,
356                x: 20,
357                autoAlpha: 0,
358                stagger: stagger_value
359            });
360        }
361
362    }
363
364});
365
366////////////////////////////// ///////////////////////
367// Has Fade Animation 
368////////////////////////////// ///////////////////////
369let fadeArray_items = document.querySelectorAll(".has_fade_anim");
370if (fadeArray_items.length > 0) {
371    const fadeArray = gsap.utils.toArray(".has_fade_anim")
372    // gsap.set(fadeArray, {opacity:0})
373    fadeArray.forEach((item, i) => {
374
375        var fade_direction = "bottom"
376        var onscroll_value = 1
377        var duration_value = 1.15
378        var fade_offset = 50
379        var delay_value = 0.15
380        var ease_value = "power2.out"
381
382        if (item.getAttribute("data-fade-offset")) {
383            fade_offset = item.getAttribute("data-fade-offset");
384        }
385        if (item.getAttribute("data-duration")) {
386            duration_value = item.getAttribute("data-duration");
387        }
388
389        if (item.getAttribute("data-fade-from")) {
390            fade_direction = item.getAttribute("data-fade-from");
391        }
392        if (item.getAttribute("data-on-scroll")) {
393            onscroll_value = item.getAttribute("data-on-scroll");
394        }
395        if (item.getAttribute("data-delay")) {
396            delay_value = item.getAttribute("data-delay");
397        }
398        if (item.getAttribute("data-ease")) {
399            ease_value = item.getAttribute("data-ease");
400        }
401
402        let animation_settings = {
403            opacity: 0,
404            ease: ease_value,
405            duration: duration_value,
406            delay: delay_value,
407        }
408
409        if (fade_direction == "top") {
410            animation_settings['y'] = -fade_offset
411        }
412        if (fade_direction == "left") {
413            animation_settings['x'] = -fade_offset;
414        }
415
416        if (fade_direction == "bottom") {
417            animation_settings['y'] = fade_offset;
418        }
419
420        if (fade_direction == "right") {
421            animation_settings['x'] = fade_offset;
422        }
423
424        if (onscroll_value == 1) {
425            animation_settings['scrollTrigger'] = {
426                trigger: item,
427                start: 'top 85%',
428            }
429        }
430        gsap.from(item, animation_settings);
431    })
432}
433
434let mm = gsap.matchMedia();
435                
436mm.add("(min-width: 1024px)", () => {
437
438    var pin_list = document.querySelectorAll(".section-item")
439    pin_list.forEach((item) => {
440        console.log(item)
441        gsap.to(item, {
442            scrollTrigger: {
443                trigger: item,
444                markers: false,
445                pin: true,
446                pinSpacing: false,
447                start: "bottom bottom",
448                end: "bottom -=500"
449            },
450        });
451    })
452
453});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.