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

Veja momentos inusitados de Galvão Bueno que merecem ser sempre lembrados

Galvão Bueno "dirige" carro de Fórmula 1 no "Bem, Amigos!" - Reprodução/SporTV
Galvão Bueno "dirige" carro de Fórmula 1 no "Bem, Amigos!" Imagem: Reprodução/SporTV

Debora Luvizotto

Do UOL, em São Paulo

09/08/2019 12h00

Galvão Bueno coleciona momentos memoráveis ao longo de seus 45 anos de carreira. Alguns deles ficaram para sempre na memória do telespectador, como o clássico grito de "É tetra" na conquista da Copa do Mundo de 1994 pela seleção brasileira de futebol. Já outros não viraram sua marca registrada, mas não merecem ser esquecidos.

Na última segunda-feira (5), por exemplo, o narrador apareceu dentro de um carro de Fórmula 1, criado pela equipe de arte do programa "Bem, Amigos!", do SporTV. Ele elogiou o veículo e ainda "acelerou" para ouvir o ronco do motor. É claro que a internet não perdoou e logo virou assunto no Twitter.

Essa, no entanto, não foi a primeira vez que narrador apareceu na TV em um momento tão carismático assim.

Relembre outras vezes que Galvão protagonizou cenas que não merecem ser esquecidas:

Fábrica de pão

Durante a Copa América deste ano, um áudio inusitado vazou na transmissão do globoesporte.com da semifinal entre Brasil e Argentina. Nele, o narrador diz: "Porra, isso aqui é pior que fábrica de pão". Até agora, segue o mistério sobre a tal fábrica de pão.

Sem paciência com torcedor

Ao brincar com Tiago Leifert sobre a inversão dos papéis, Galvão mostrou que não tem paciência para zoeiras de torcedores.

Tecnologia

Não foi só no episódio do carro de Foórmula 1 que Galvão mostrou sua intimidade (ou falta de) com a tecnologia durante seus programas...

Ondrej Kudela

Na vitória do Brasil por 3 a 1 sobre a República Tcheca, em jogo amistoso neste ano, Ondrej Kudela foi eleito o melhor em campo pelos telespectadores da TV Globo em votação pela internet. O anúncio do vencedor levou Galvão Bueno às gargalhadas durante a transmissão.

Delay em gol

No Mundial de Clubes de 2018, o segundo gol da goleada do Real Madrid sobre o Al Ain, por 4 a 1, teve um "delay" na narração de Galvão. Na ocasião, ele chegou a justificar: "Eu atrasei um pouquinho o grito do gol porque imediatamente a câmera cortou para o lado. Eu falei: 'Eita? Vai dar VAR, vão anular'. Mas um golaço do Llorente, não havia porque falar nada".

Galvão Bueno - Reprodução - Reprodução
Galvão Bueno
Imagem: Reprodução

Michael Phelps

Um grande momento, a ser lembrado, aconteceu durante os jogos Olímpicos de Pequim, em 2008. Na dúvida se o nadador Michael Phelps teria conquistado ou não a medalha de ouro na prova, Galvão fez a clássica e confusa narração: "Vai perder, vai ganhar. Perdeu! Ganhou!"

Ouça a narração:

Alain Prost

Durante o GP da África do Sul de Fórmula 1, na década de 1980, Galvão não percebeu que Alain Prost abandonou a prova durante o pit stop. Mesmo depois de o francês sair do carro, o narrador continuou contando o tempo por quase 20 segundos. Quando percebeu, Prost já estava bem longe do carro.

Galvão Bueno não percebe que Alain Prost abandonou a prova e continua a narração - Reprodução - Reprodução
Galvão Bueno não percebe que Alain Prost abandonou a prova e continua a narração
Imagem: Reprodução