;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Paparazzi

Cláudia Santos apaga fotos com Jô após separação; jogador exclui perfil

Jô e Claudia Silva - Reprodução/Instagram
Jô e Claudia Silva Imagem: Reprodução/Instagram

Colaboração para o UOL, em São Paulo

17/06/2022 09h40

Após vir à tona a polêmica de Jô envolvendo a modelo Maiára Quiderolly, a empresária Cláudia Santos anunciou o fim de seu casamento com o jogador.

Cláudia apagou todas as fotos com Jô de seu perfil no Instagram e alterou o seu sobrenome, retirando o "Silva" que vinha do ex-marido.

O único registro deixado pela empresária mostra Jô com seus dois filhos em homenagem ao Dia dos Pais, de maneira irônica, com a legenda original alterada.

O ex-centroavante do Corinthians deletou seu perfil das redes sociais assim que as notícias circularam e ainda não se pronunciou sobre o caso.

Cláudia também retirou do ar o vídeo em que comenta sobre cinco filhos que Jô teria tido fora do casamento, sem contar o sexto divulgado recentemente pela suposta amante Maiára Quiderolly.

"Para deixar uma coisa clara para o mundo, o filho dela [Maiára Quiderolly] não é um troféu para ele, porque ele já tem cinco filhos fora do casamento. Dois se relacionam muito bem comigo, eu tenho contato com as mães, uma das mães é a Carol e eu me dou super bem com ela. Os dois filhos dele aram o Natal na minha casa, e vão continuar ando porque são irmãos dos meus filhos. Mas o filho dela não é um troféu", explicou Cláudia.

A ex-mulher do atleta também afirmou que não vai deixar suas redes sociais, mas que pretende "enterrar essa história".

"Não vou deixar de ter rede social, porque não tenho porque me esconder. Pelo contrário, tenho que estar aqui para fazer da minha vida espelho para vida de alguém. Vou viver esse luto, vou enterrar essa história e tenho fé em Deus (...) Acredito que meus filhos vão me dar forças também, mas eu peço para vocês me deixarem quietinha", acrescentou.

Paparazzi