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

Após 15 anos sem contato, Drew Barrymore reencontra ex-marido Tom Green 

Drew Barrymore convidou ex-marido para programa de Talk Show
Drew Barrymore convidou ex-marido para programa de Talk Show
Reprodução/YouTube

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

25/09/2020 18h41

Drew Barrymore já encarnou diversas personagens em comédias românticas, mas o que pouca gente sabia era que sua própria vida amorosa poderia se transformar em um destes filmes.

Continua depois da publicidade

Em recente episódio do seu programa The Drew Barrymore Show, a atriz convidou um comediante bastante especial: seu ex-marido Tom Green, com quem não falava há 15 anos!

"Sempre fui atraída por visionários, comediantes e pessoas que me fazem rir", disse Barrymore, ao apresentar o ex-marido. "Fiquei tão atraído pelo nosso próximo convidado que até me casei com ele!"

Apesar a falta de contato, o reencontro mostrou que não há mágoas guardadas entre os dois e Green ainda afirmou que até hoje sua família nutre um grande carinho pela atriz.

"Eles [pais de Green] estão felizes por você. Adoramos ver você fazer coisas incríveis."

Continua depois da publicidade

A dupla estrelou lado a lado no filme "As Panteras" e se casaram em 2001. Entretanto, a separação veio no ano seguinte.

"Quando você diz que são 15 anos, às vezes é um piscar de olhos e às vezes você fica tipo, 'Meu Deus', vivemos tanto nestes últimos anos. Você teve uma vida inteira e eu tive uma vida inteira e é muito bom nos reunirmos, ver como estamos e conversarmos sobre isso", disse Drew Barrymore.

Os artistas afirmaram que deram "muitas risadas" durante as gravações do blockbuster e Green ainda relembrou um dos primeiros encontros que teve com a atriz, arrancando muitos olhares saudosos dela durante a sua fala.

"Foi tão emocionante fazer aquele filme com você. E você sabe, nós meio que nos demos bem imediatamente. Acho que em um dos nossos primeiros encontros nós fomos e compramos lagostas porque ambos amamos animais. Nós então pegamos as lagostas e as soltamos no oceano. Foi isso que decidimos fazer."

Continua depois da publicidade

Drew Barrymore aproveitou o momento nostalgia para creditá-lo por sua "fase Annie Hall" após ter ganhado do então namorado uma câmera fotográfica de presente.

"E eu ainda a tenho, a Pentax K1000. Você deu início ao que viriam a ser duas décadas de ser uma verdadeira fotógrafa, e você me colocou em toda a minha fase Annie Hall de tirar fotos, que é uma arte tão bonita."

Na época da separação, Green disse à People em um comunicado que Drew Barrymore era "uma mulher maravilhosa" e que a amava "muito". "Eu gostaria que nosso casamento pudesse ter dado certo. Desejo a ela muitas felicidades", afirmou.

Drew Barrymore foi casada anteriormente com o músico Jeremy Thomas e, mais tarde, com Will Kopelman. Ela e Kopelman tiveram duas filhas: Olive, 7, e Frankie, 6.

Uau! Haja coração para este encontro!

Continua depois da publicidade