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

Andressa Urach relembra affair com Cristiano Ronaldo: 'Ele tinha uma noiva'

Andressa Urach e Cristiano Ronaldo tiveram um caso em 2013 - Arte UOL
Andressa Urach e Cristiano Ronaldo tiveram um caso em 2013 Imagem: Arte UOL

Colaboração para o UOL, em São Paulo (SP)

11/03/2023 09h36

Andressa Urach abriu o jogo sobre o affair que teve com Cristiano Ronaldo — que, na época, tinha um relacionamento com a modelo russa Irina Shayk.

O que aconteceu?

Eu nem gosto de falar sobre isso. Tadinho, na época ele tinha uma noiva e eu meio que estraguei o relacionamento dele. Depois, me senti super culpada e pedi perdão no meu livro. Ele sabe o que aconteceu, mas ele nega. Fiquei com raiva. Eu era muito barraqueira. Na verdade, eu só queria uma foto com ele, porque eu era fã, né?"
Andressa Urach

Em entrevista ao podcast Inteligência Ltda, Andressa Urach expôs com detalhes a vez em que saiu com Cristiano Ronaldo. A modelo afirma que se encontraram somente uma vez, em 2013, em um hotel em Madri, na Espanha.

A modelo foi apresentada a CR7 por um jogador brasileiro não revelado. Na ocasião, Urach era dançarina e assistente de palco, mas ocasionalmente contratada como garota de programa por alguns famosos.

Apesar do "aumento no cachê", conforme dito pela modelo, ela se arrepende de ter ficado com o atleta e diz que "não faria de novo se pudesse voltar no tempo". Embora quando perguntada pelo apresentador, Rogério Vilela, Urach tenha elogiado os atributos físicos do atacante.

Urach diz que o português, depois de negar publicamente o affair, mandou mensagens a xingando quando o assunto repercutiu na mídia. Este motivo quase desencadeou um processo contra o jogador, mas a gaúcha optou por deixar isso de lado quando entrou no programa "A Fazenda", da Record.

Esse jogador [brasileiro] pagou para que eu fosse para a Rússia. Muitos jogadores pagam garotas de programa para fazer festinha. Ali, eu saí com ele e outros alguns jogadores de lá, e um desses conhecia o Cristiano. Eu disse: 'Cristiano é meu sonho de consumo', e ele ou meu telefone, meu WhatsApp. Ele (Cristiano) que me procurou"
Andressa Urach

Paparazzi