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

Biscoito, águia, Fábio Jr. e muitos globos: Renata Fan sofre no Jogo Aberto

Denílson zoa Renata Fan no Jogo Aberto - Reprodução/TV Band
Denílson zoa Renata Fan no Jogo Aberto Imagem: Reprodução/TV Band

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

04/03/2022 12h52

A queda do Inter na primeira fase da Copa do Brasil, após derrota por 2 a 0 diante do Globo-RN, foi o principal assunto do "Jogo Aberto", da TV Band, hoje (4). O comentarista Denílson aproveitou a ocasião para promover diversas brincadeiras com a apresentadora Renata Fan, torcedora colorada.

O ex-jogador chegou ao programa com a cabeça coberta por parte de uma fantasia de uma águia - mascote do time potiguar - e segurando um globo terrestre, mais uma referência ao nome dos algozes do Inter.

globo - Reprodução/TV Band - Reprodução/TV Band
Jogadores do Globo-RN mandam mensagem e provocam Renata Fan
Imagem: Reprodução/TV Band

A provocação continuou durante todo o programa, com referências à TV Globo, homônima do clube de Ceará-Mirim. Denílson assumiu o papel de apresentador do 'Globo Aberto', chamando plantões com recados de jogadores da equipe potiguar sendo exibidos durante toda a atração

Mais tarde , o repórter João Paulo Capellanes, devidamente trajado como Renata Fan - inclusive usando uma peruca loira e maquiagem -, mostrou o lado de fora dos estúdios da TV Globo

joao - Reprodução/TV Band - Reprodução/TV Band
João Paulo Capellanes, como Renata Fan, no Jogo Aberto
Imagem: Reprodução/TV Band

Durante o debate, trecho da atração com outros comentaristas, cada um deles comeu biscoitos da marca "Globo". Ainda deu tempo de Heverton Guimarães eleger Renata Fan como a nova "Globeleza" e de pedir a música "Quando o gira o mundo", de Fábio Jr.

Renata Fan pede saída do presidente

A apresentadora também demonstrou sua insatisfação durante o programa e desabafou contra a direção do clube, pedindo a saída do presidente Alessandro Barcellos.

"O presidente está pedindo desculpas e, como torcedora colorada, eu não aceito. Mas eu aceito seu pedido para sair do clube. Pede o boné, presidente! Dia 4 de janeiro de 2021, você assumiu o Inter e naufragou o clube. Você está fazendo uma istração horrorosa no futebol. Horrorosa! Péssima! Você já trouxe três treinadores e chutou o Abel Braga. Então, você é o culpado", declarou.

"Ontem, ficou pequena essa declaração de desculpas, ficou ruim. Não tem o que falar agora? O técnico que está aí não pediu para treinar o Inter, foi chamado. Vai transferir responsabilidade de novo? Vai demitir todo mundo e ficar no cargo? Tem que sair todo mundo. Eu estou avisando. Desde fevereiro do ano ado, eu estou falando do que fizeram, de como destruíram um time que chegou em 2º lugar no Brasileiro. Destruíram, acabaram, terminaram", finalizou Renata Fan.