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

Gabriel Vaquer

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Por que Galvão Bueno não narra jogo do Palmeiras no Mundial de Clubes

Galvão Bueno, em participação no Seleção SporTV: público sentiu sua falta no Mundial de Clubes - Reprodução SporTV
Galvão Bueno, em participação no Seleção SporTV: público sentiu sua falta no Mundial de Clubes Imagem: Reprodução SporTV

07/02/2021 16h01

Alguns telespectadores que sintonizaram a Globo na tarde de hoje (7) para ver o jogo entre Palmeiras x Tigres (MEX) pela semifinal do Mundial de Clubes sentiram falta da voz de Galvão Bueno, que normalmente faz estes eventos mais importantes na emissora. A partida foi narrada por Cléber Machado, nome mais identificado com a audiência paulista. Galvão não foi escalado por causa da pandemia do novo coronavírus. A partida acabou coma vitória mexicana por 1 a 0.

Galvão Bueno está afastado das transmissões de eventos desde março do ano ado e isolado em casa por ser do grupo de risco da doença. Ele participa frequentemente de programas no Sportv, como "Bem, Amigos!" e "Seleção Sportv" diretamente de sua casa, localizada na cidade de Londrina, no interior do Paraná. Mas, por determinação da Globo, ele não pode ir aos estúdios da TV. E toda a transmissão de jogo tem que ser feita no estúdio.

Além de Galvão, outros narradores com mais de 60 anos estão afastados das transmissões, como Milton Leite e Jota Júnior. Milton ainda continua em produções da Sportv, participando semanalmente do programa "Redação Sportv", além de comandar uma versão remota do programa de entrevistas "O Grande Círculo". Já Jota Júnior não faz nenhuma atração e apenas produziu alguns especiais.

Por causa desta determinação da Globo, Galvão Bueno não pôde estar na temporada de despedida da Fórmula 1 da emissora em 2020 - as corridas foram feitas por Cléber Machado e Everaldo Marques. Galvão chegou a sugerir que a Globo analisasse a possibilidade dele realizar uma corrida na temporada da F1, mas a Globo vetou justamente por questões de segurança.

Galvão Bueno só voltará para os jogos se for vacinado. Por causa da pandemia e desse período longo de afastamento, Galvão mudou de ideia e deve participar da cobertura da Copa do Mundo de 2022 no Qatar como narrador.