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.