PageSourceSearch

https://motioncanvas.io/blog/wp-content/themes/unibiz/assets/js/preset_script.js?ver=1.0.9

js motioncanvas.io collected 2026-10-04 00:25:01 UTC 3,129 bytes, 87 lines download raw bytes

1"use strict";
2
3document.addEventListener("DOMContentLoaded", function () {
4    function playAnimation(element, frame = false) {
5        if (frame) {
6            element.style.visibility = 'visible';
7            element.style.opacity = '1';
8            element.style.transform = 'none';
9        }
10        if (element.getBoundingClientRect().top > 0 && element.getBoundingClientRect().top <= (window.innerHeight * 0.75)) {
11            element.classList.add('unibiz-animate-init');            
12        }
13    }
14
15    function prepareAnimation(doc, frame = false) {
16        var elements = doc.getElementsByClassName('unibiz-animate');
17
18        for (let element of elements) {
19            if ( frame ) {
20                playAnimation(element, true);
21            } else {
22                window.addEventListener('load', function () {
23                    playAnimation(element);
24                });
25                window.addEventListener('scroll', function () {
26                    playAnimation(element);
27                });
28            }
29        }
30    }
31
32    prepareAnimation(document);
33
34    setTimeout(function() {
35        var iframe = document.getElementsByClassName('edit-site-visual-editor__editor-canvas');
36        var innerDoc = iframe.length > 0 ? iframe[0].contentDocument || iframe[0].contentWindow.document : null;
37        innerDoc ? prepareAnimation(innerDoc, true) : null;
38    }, 3000);
39
40    function submenuDynamicPosition(item, submenu) {
41        if (item.classList.contains('left')) {
42            item.classList.remove('left');
43        }
44
45        const screenWidth = window.innerWidth;
46
47        const updatedRect = submenu.getBoundingClientRect();
48        if (updatedRect.right > screenWidth) {
49            item.classList.add('left');
50        } else if (updatedRect.right < 0) {
51            if (item.classList.contains('left')) {
52                item.classList.remove('left');
53            }
54            item.classList.add('right');
55        }
56
57        submenu.querySelectorAll('.wp-block-navigation-item.has-child').forEach(itemsub => {
58            const sub_submenu = itemsub.querySelector('.wp-block-navigation__submenu-container');
59            if (!sub_submenu) return;
60            const rect = itemsub.getBoundingClientRect();
61
62            if (rect.right > screenWidth) {
63                itemsub.classList.add('left');
64            } else if (rect.right < 0) {
65                if (itemsub.classList.contains('left')) {
66                    itemsub.classList.remove('left');
67                }
68                itemsub.classList.add('right');
69            }
70        });
71    }
72
73    document.querySelectorAll('.wp-block-navigation .wp-block-navigation__container .wp-block-navigation-item.has-child').forEach(item => {
74        const submenu = item.querySelector('.wp-block-navigation__submenu-container');
75        if (!submenu) return;
76
77        submenuDynamicPosition(item, submenu);
78
79        item.addEventListener('mouseenter', () => {
80            submenuDynamicPosition(item, submenu);
81        });
82
83        window.addEventListener('resize', () => {
84            submenuDynamicPosition(item, submenu);
85        });
86    });
87});

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.