PageSourceSearch

https://mova.weefor.com.br/wp-content/themes/mova-weefor/assets/js…?ver=ffb01afa30b5bde04a18efd6750fe594

js weefor.com.br collected 2026-10-04 08:39:46 UTC 9,712 bytes, 238 lines download raw bytes

1
2const resolucaoInicial = window.innerWidth;
3function verificarMudancaDeResolucao() {
4    const larguraAtual = window.innerWidth;
5    if ((resolucaoInicial < 1200 && larguraAtual >= 1200) || (resolucaoInicial >= 1200 && larguraAtual < 1200)) {
6
7        location.reload(true);
8    }
9}
10// funções para verificar posição de elementos
11function visibleSectionActive(value1, value2, value3) {
12    const sections = document.querySelectorAll(value1);
13    for (let i = 0; i < sections.length; i++) {
14        let dataAttrValue = sections[i].dataset.efeito;
15        visibleSectionObject(sections[i], value2, value3)
16    }
17}
18
19function visibleSectionObject(element, visibilidade, classe) {
20    switch (visibilidade) {
21        case 'isElementInitialVisible':
22            visibilidade = isElementInitialVisible;
23            break;
24        case 'isElementHalfVisible':
25            visibilidade = isElementHalfVisible;
26            break;
27        case 'isElementFullyVisible':
28            visibilidade = isElementFullyVisible;
29            break;
30        default:
31            visibilidade = isElementHalfVisible;
32    }
33    const container = element;
34
35    if (container && visibilidade(container)) {
36        $(container).addClass(classe);
37        return true;
38    } else {
39        $(container).removeClass(classe)
40        return false;
41    }
42}
43
44function visibleSection(element, visibilidade, classe) {
45    const elementoRelativo = document.querySelector(element);
46
47    if (elementoRelativo && visibilidade(elementoRelativo)) {
48        $(elementoRelativo).addClass(classe);
49        return true;
50    } else {
51        $(elementoRelativo).removeClass(classe)
52        return false;
53    }
54}
55
56function isElementFullyVisible(element) {
57    const rect = element.getBoundingClientRect();
58    const windowHeight = window.innerHeight || document.documentElement.clientHeight;
59    const windowWidth = window.innerWidth || document.documentElement.clientWidth;
60
61    // Verifica se o elemento está dentro da viewport verticalmente
62    const isVerticalVisible = rect.top >= 0 && rect.bottom <= windowHeight && rect.height <= windowHeight;
63
64    // Verifica se o elemento está dentro da viewport horizontalmente
65    const isHorizontalVisible = rect.left >= 0 && rect.right <= windowWidth && rect.width <= windowWidth;
66
67    return isVerticalVisible && isHorizontalVisible;
68}
69
70function isElementHalfVisible(element) {
71    const rect = element.getBoundingClientRect();
72    const windowHeight = window.innerHeight || document.documentElement.clientHeight;
73    const windowWidth = window.innerWidth || document.documentElement.clientWidth;
74
75    // Verifica se pelo menos metade do elemento está visível verticalmente
76    const isVerticalHalfVisible = (rect.top + rect.height / 2) >= 0 && (rect.bottom - rect.height / 2) <= windowHeight;
77
78    // Verifica se pelo menos metade do elemento está visível horizontalmente
79    const isHorizontalHalfVisible = (rect.left + rect.width / 2) >= 0 && (rect.right - rect.width / 2) <= windowWidth;
80
81    return isVerticalHalfVisible && isHorizontalHalfVisible;
82}
83
84function isElementInitialVisible(element) {
85    const rect = element.getBoundingClientRect();
86    const windowHeight = window.innerHeight || document.documentElement.clientHeight;
87    const windowWidth = window.innerWidth || document.documentElement.clientWidth;
88
89    // Verifica se pelo menos uma parte do elemento está dentro da viewport verticalmente
90    const isVerticalVisible = (rect.top >= 0 && rect.bottom <= windowHeight) || (rect.top <= 0 && rect.bottom >= 0) || (rect.top <= windowHeight && rect.bottom >= windowHeight);
91
92    // Verifica se pelo menos uma parte do elemento está dentro da viewport horizontalmente
93    const isHorizontalVisible = (rect.left >= 0 && rect.right <= windowWidth) || (rect.left <= 0 && rect.right >= 0) || (rect.left <= windowWidth && rect.right >= windowWidth);
94
95    return isVerticalVisible && isHorizontalVisible;
96}
97let efeitoElementos = [];
98let efeitoElementosVazio = false;
99/* EXEMPLO DE efeitoElementos
100 const efeitoElementos = [{
101        id: "item1",
102        velocidade: 0.3,
103        invertY: false,
104        invertX: false
105    }]
106*/
107function moverElementos(event) {
108    const efeitosMovElementos = event;
109    if (efeitosMovElementos == undefined || efeitosMovElementos.length == 0) {
110        if (!efeitosMovElementos) {
111            console.log('Efeitos de movimento em relação ao mouse nao encontrados, verifique os valores em efeitoElementos[...]');
112            efeitosMovElementos = true;
113        }
114        return;
115    }
116
117    efeitosMovElementos.forEach(function (elementoInfo) {
118        const elemento = document.getElementById(elementoInfo.id);
119        const inViewPort = $(elemento).closest('.section').hasClass('active');
120
121        if (elemento && inViewPort && window.innerWidth >= 769) {
122            let deslocamentoX;
123            let deslocamentoY;
124            let velocidade = (elementoInfo.velocidade == '') ? '.2' : elementoInfo.velocidade;
125            const posicaoX = event.clientX;
126            const posicaoY = event.clientY;
127            const centroX = window.innerWidth / 2;
128            const centroY = window.innerHeight / 2;
129            const distanciaX = posicaoX - centroX;
130            const distanciaY = posicaoY - centroY;
131            (elementoInfo.invertX) ? deslocamentoX = ((-distanciaX * velocidade) / 6) / -1 : deslocamentoX = (-distanciaX * velocidade) / 6;
132            (elementoInfo.invertY) ? deslocamentoY = ((-distanciaY * velocidade) / 6) / -1 : deslocamentoY = (-distanciaY * velocidade) / 6;
133            elemento.style.transition = "transform 0.15s";
134            elemento.style.transform = `translate(${deslocamentoX}px, ${deslocamentoY}px)`;
135        }
136    });
137}
138function efeitoMouseScroll(event, grupo, containerClass, classActive) {
139    const efeitosMovElementos = grupo;
140    if (efeitosMovElementos == undefined || efeitosMovElementos.length == 0) {
141        if (!efeitosMovElementos) {
142            console.log('Efeitos de movimento em relação ao mouse nao encontrados, verifique os valores em efeitoElementos[...]');
143            efeitosMovElementos = true;
144        }
145        return;
146    }
147    let sectionClass;
148    if (containerClass) {
149        sectionClass = containerClass;
150    } else {
151        sectionClass = 'section';
152
153    }
154    let sectionAtiva;
155    if (classActive) {
156        sectionAtiva = classActive;
157    } else {
158        sectionAtiva = 'active';
159
160    }
161    efeitosMovElementos.forEach(function (elementoInfo,) {
162        const elemento = document.getElementById(elementoInfo.id);
163        const inViewPort = $(elemento).closest(sectionClass).hasClass(sectionAtiva);
164
165
166        if (elemento && inViewPort && window.innerWidth >= 769) {
167            let deslocamentoX;
168            let deslocamentoY;
169            let velocidade = (elementoInfo.velocidade == '') ? '.2' : elementoInfo.velocidade;
170            const posicaoX = event.clientX;
171            const posicaoY = event.clientY;
172            const centroX = window.innerWidth / 2;
173            const centroY = window.innerHeight / 2;
174            const distanciaX = posicaoX - centroX;
175            const distanciaY = posicaoY - centroY;
176            (elementoInfo.invertX) ? deslocamentoX = ((-distanciaX * Number(velocidade)) / 6) / -1 : deslocamentoX = (-distanciaX * Number(velocidade)) / 6;
177            (elementoInfo.invertY) ? deslocamentoY = ((-distanciaY * Number(velocidade)) / 6) / -1 : deslocamentoY = (-distanciaY * Number(velocidade)) / 6;
178            elemento.style.transition = "transform 0.1s";
179            elemento.style.transform = `translate(${deslocamentoX}px, ${deslocamentoY}px)`;
180        }
181    });
182}
183function rotateElement(selector) {
184    const rotatingElements = document.querySelectorAll(selector);
185
186    if (!rotatingElements.length) {
187        return; // Não há elementos para rotacionar
188    }
189
190    function rotate() {
191        rotatingElements.forEach(function (element) {
192            const sentido = element.getAttribute('data-sentido');
193            const velocidade = parseFloat(element.getAttribute('data-velocidade'));
194            let sent = sentido === '1' ? '-' : ''; // Verifica se o sentido é '1'
195            let vel = isNaN(velocidade) || velocidade === 0 ? 10 : velocidade; // Usa 10 como padrão se a velocidade não for válida ou for zero
196
197            var rotationAngle = window.scrollY / vel;
198            element.style.transform = `rotate(${sent}${rotationAngle}deg)`;
199        });
200
201        requestAnimationFrame(rotate); // Chama rotate no próximo frame de animação
202    }
203
204    rotate(); // Inicia a rotação
205}
206
207// function Default para executar video
208function playVideoIfActive(videoObj, sessaoAtiva) {
209    const video = videoObj[0];
210    if (sessaoAtiva && videoObj.length != 0 && video.paused) {
211        const playPromise = video.play();
212        playPromise.then(function () {
213            // console.log('Play video ' + !video.paused, videoObj);
214        }).catch(function (error) {
215            console.error('Erro play video:', error, videoObj);
216        });
217    } else (videoObj.length != 0 && video.paused) ? videoObj[0].pause() : '';
218
219}
220function checkScroll() {
221    let previousScroll = 0;
222    const $menu = document.querySelector('.menu');
223    if ($menu) {
224        window.addEventListener("scroll", function () {
225            let currentScroll = document.documentElement.scrollTop;
226            if (currentScroll < 100) return;
227            if (currentScroll > previousScroll) {
228                $menu.classList.add('hidden');
229            } else {
230                $menu.classList.remove('hidden');
231            }
232            previousScroll = currentScroll;
233        });
234    } else {
235        console.log('checkScroll = false - "pagina sem menu.."');
236    }
237
238}

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.