;(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

De balada a ensaio fotográfico sozinha: os desabafos da esposa de Militão

Do UOL, em São Paulo (SP)

20/06/2022 11h24

Karoline Lima, influenciadora e esposa do zagueiro Éder Militão, do Real Madrid, virou o assunto no último fim de semana por alguns desabafos que fez nas redes sociais sobre seu companheiro.

No sábado (18), ela gravou um story no Instagram respondendo seus seguidores e disse que estava na sua casa em Madri, enquanto Éder podia ser encontrado "nas melhores baladas de Miami".

Karoline também relata que não está se sentindo bem e está com dores, dizendo que sente muita cólica e que o bebê já está na posição correta para nascer. A influenciadora ainda afirma que ou no médico e que está tudo bem com Cecília, que deve nascer em breve.

Pouco tempo depois da publicação, a influenciadora apagou o story em que alfinetava o marido.

Militão foi a Miami para participar do "The Beautiful Game", um jogo de exibição que reuniu amigos de Ronaldinho Gaúcho e amigos de Roberto Carlos.

'Às vezes dá vontade de sumir'

Karoline Lima seguiu com os desabafos no Instagram após a repercussão de seu vídeo anterior.

"O até breve é porque, enfim, sei lá, às vezes dá vontade de sumir, mas acho injusto com vocês porque vocês são tão legais comigo. Estou recebendo tanto amor de vocês, afeto, mas sei que vocês me entendem. Pela voz, olhar, jeito de falar, tem horas que eu tento até disfarçar, mas vocês... nunca vi isso. Mas eu só quero ficar em paz, colocar minha cabeça no lugar e pensar na Ceci. Primeiro lugar é ela", disse.

Ensaio fotográfico sozinha

kjeroline - Reprodução/Instagram - Reprodução/Instagram
Imagem: Reprodução/Instagram

Na manhã de hoje, Keroline apareceu triste mais uma vez no stories e mostrou que sua amiga Priscila está fazendo de tudo para motiva-la.

Ontem, elas fizeram comprar para a Ceci e hoje vão fazer o ensaio fotográfico — em sua explicação, Karoline deixa no ar que os ensaios não foram realizados antes por conta da ausência de Militão.

"Queria hoje mais um dia dando uma de Tiago Iorc, sumindo um pouco. Mas hoje a gente vai fazer umas fotos, já era pra ter feito elas há muit tempo. São fotos da gravidez, estou entrando no nono mês e não fiz fotos profissionais. Já tinha um bom tempo que ia acontecer, mas sempre tive que mudar as datas e vai ser isso mesmo", afirmou a influencer.

Paparazzi