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

Gisele Bündchen e Tom Brady estão vivendo em casas separadas, diz TV

Gisele Bündchen e Tom Brady estão casados desde 2009 - Reprodução/ Instagram @gisele
Gisele Bündchen e Tom Brady estão casados desde 2009 Imagem: Reprodução/ Instagram @gisele

Colaboração para Splash, no Rio de Janeiro

15/09/2022 08h52

Gisele Bündchen, de 42 anos, e Tom Brady, 45, estariam ando por um momento complicado na vida do casal. De acordo com fontes da CNN, os dois estão vivendo separadamente.

A modelo e o jogador de futebol americano, sete vezes campeão do Super Bowl e que atualmente joga pelo Tampa Bay Buccaneers, têm lidado com problemas conjugais, segundo informou uma fonte próxima ao casal.

Em entrevista à revista Elle publicada nesta semana, Gisele afirmou que se preocupava com o retorno do marido ao campo após um breve tempo de aposentadoria, em fevereiro deste ano. Brady havia confirmado sua saída da NFL, mas depois voltou atrás na sua decisão.

"Obviamente tenho minhas preocupações. É um esporte muito violento e eu tenho meus filhos, e gostaria que ele fosse mais presente", disse ela para a publicação.

"Eu definitivamente tive essas conversas com ele várias vezes. Mas, no final das contas, sinto que todos temos que tomar decisões que funcionem para cada um de nós. Ele precisa seguir o caminho de sua felicidade também", continuou ela.

Gisele se afastou das arelas para cuidar de sua família, e diz que é "muito grata" por ter conseguido "realmente moldar quem eles são como pessoas". "Sou muito realizada nesse sentido, como esposa e como mãe", disse ela.

Em agosto, o jogador de futebol americano tirou uma licença de 11 dias dos treinamentos para "lidar com coisas pessoais", de acordo com seu técnico Todd Bowles.

No podcast "Let's Go!" em que divide a apresentação com Jim Gray, Brady destacou o impacto das décadas de jogo na NFL em sua vida.

"Não tenho um Natal há 23 anos e não tenho um Dia de Ação de Graças há 23 anos. Não comemorei aniversários com pessoas que me importam, que nasceram de agosto a final de janeiro. E não posso ir a funerais ou em casamentos", disse Brady a Gray.

Brady ainda acrescentou: "Acho que chega um ponto em sua vida em que você diz: 'Sabe de uma coisa? Já estou cheio e é tempo suficiente para continuar, de evoluir para outras fases da vida".

Rumores

A crise conjugal foi divulgada após a brasileira ter deixado a casa da família, na Flórida, nos Estados Unidos, para ar uma temporada na Costa Rica após algumas discussões acaloradas com o marido, segundo o site americano Page Six.

A publicação relatou que pessoas próximas ao casal confirmaram que Gisele e Tom estão brigados. O motivo do desentendimento do casal teria sido a decisão dele em desistir da aposentadoria para jogar por mais um ano pelo time de futebol americano Tampa Bay Bucaneers.

"Eles têm um relacionamento ardente. Gisele é um pouco cabeça quente - ela tem aquele calor brasileiro!", relatou uma das fonte da publicação.

"Todo mundo tem diferentes situações pelas quais está ando... Todos temos desafios únicos em novas vidas. Tenho 45 anos e tem muita coisa acontecendo", afirmou ele, em contato com a imprensa após um jogo.

Casados de 2009, Gisele e Tom são pais de Benjamin, de 14, e Vivian, de 9. Além disso, o astro é pai de Jack (15 anos), do relacionamento com Bridget Moynahan.