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

Chris Pratt é acusado de objetificar a esposa: 'Perdi o respeito'

Colaboração para Splash, no Rio de Janeiro

05/11/2021 09h54Atualizada em 05/11/2021 13h04

Chris Pratt voltou a ser assunto nas redes sociais, mais uma vez por um motivo negativo: o ator da Marvel vem sendo detonado após publicar um texto no Instagram onde objetifica a esposa, Katherine, além de agradecer pela 'filha saudável' que a filha de Arnold Schwarzenegger deu a ele. A declaração desmerece o filho primogênito do ator, Jack, fruto de seu antigo relacionamento com Anna Faris. O pequeno de 8 anos nasceu prematuro e teve hemorragia cerebral, portanto, precisa de alguns cuidados especiais.

Na declaração, o protagonista de "Guardiões da Galáxia" observa a forma que a esposa olha para ele e fala sobre a 'troca' entre eles. "Gente, de verdade, olhem como ela está olhando para mim. Quer dizer, encontre alguém que olhe assim para você! Ela me deu uma vida incrível, uma filha linda e saudável, ela mastiga tão alto que às vezes eu coloco meu fone de ouvido para abafar, mas isso é amor! Ela me ajuda com tudo! Em troca, periodicamente, abro um pote de picles. Essa é a troca", detalha.

Ele finaliza com uma 'brincadeira' que também acabou não agradando os internautas: "Seu coração é puro e pertence a mim. Meu maior tesouro, bem ao lado do meu cartão de Ken Griffey Jr. (astro do beisebol). Que você sabe que diz muito. É seu aniversário daqui há seis meses, então se eu não comprar nada para ela, vou dizer para olhar este post de novo. Amo você, querida", conclui.

Não foram poucas as mensagens negativas deixadas, tanto na publicação, quanto nas redes sociais em geral. "Notei a ênfase em que ela 'deu' a você uma filha saudável. Parece que seu primeiro filho não foi suficiente", apontou um. Outro internauta comenta sobre a "declaração" para Katherine: "Só é legal se você estiver olhando para ela da mesma forma, cara". A esposa do ator voltou a ser mencionada em vários outros comentários: "Você acabou de descrever sua esposa como uma posse?", questiona um. Outro diz que deixou de ser fã de Pratt: "Perdi o respeito por você depois desse post por múltiplos motivos. Triste".