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

Globo contrata Fabiana e Thaísa para comentar vôlei feminino na Olimpíada

Thaísa e Fabiana em pose para a Folha de São Paulo: contratadas pela Globo para os Jogos Olímpicos de Tóquio - Adriano Vizoni/David Ribeiro/Folhapress
Thaísa e Fabiana em pose para a Folha de São Paulo: contratadas pela Globo para os Jogos Olímpicos de Tóquio Imagem: Adriano Vizoni/David Ribeiro/Folhapress

Colunista do UOL

23/05/2021 04h00

A Globo fechou contrato com duas ex-jogadoras da seleção brasileira de vôlei feminino para as transmissões dos Jogos Olímpicos de Tóquio em julho. Fabiana Claudino, de 36 anos, e Thaísa Menezes, de 34, vão atuar como comentaristas durante a realização do evento no Japão. Ambas participarão de eventos em TV aberta pela TV Globo, e de TV paga pelo SporTV.

A informação foi confirmada pela Globo em contato feito pela coluna. Ambas são bicampeãs olímpicas pela seleção, em Pequim-2008 e Londres-2012, e ainda estão em atividade e jogando em alto nível por clubes brasileiros na Superliga de vôlei, mas não estarão em Tóquio por motivos diferentes.

Fabiana deu uma pausa na carreira para ser mãe. Em abril, nasceu Asaf, seu primeiro filho com o marido, o produtor Vinícius de Paula. Já Thaísa decidiu se aposentar da seleção brasileira principal depois de 14 anos de atuação para tentar uma longevidade maior em sua carreira por clubes — em 2017, Thaísa teve uma lesão grave que quase a fez antecipar sua aposentadoria.

Carreiras vitoriosas

Fabiana tem duas medalhas de ouro em Olimpíadas (2008 e 2012), além de ser sete vezes campeã do Grand Prix de vôlei feminino (2004, 2006, 2008, 2009, 2013, 2014 e 2016), bicampeã da Copa dos Campeões (2005 e 2013) e campeã pan-americana (2011). Já Thaísa também possui dois ouros olímpicos (2008 e 2012), cinco Grand Prix (2008, 2009, 2013, 2014 e 2016), um Campeonato Mundial (2012) e um pan-americano (2011).

Com a chegada de Fabiana e Thaísa, a Globo fecha o seu time de comentaristas de vôlei para a Olimpíada de Tóquio, que começa em 23 de julho. Como a coluna antecipou ontem (22), a emissora também contratou Serginho Escadinha, considerado o maior vencedor do vôlei brasileiro, para a função de comentarista.

Serginho, Fabiana e Thaísa se juntam a Fabi, Nalbert, Carlão, Tande e Marco Freitas, comentaristas do elenco fixo de vôlei na Globo. A emissora promete exibir 200 horas de Jogos Olímpicos de Tóquio na TV aberta. Ao todo, serão 50 enviados para o Japão — apenas repórteres e produtores, com narradores e comentaristas ficando no Brasil.

O evento terá cobertura ampla também no SporTV, que terá quatro canais lineares e 45 sinais na internet para exibir eventos. Fora do Grupo Globo, apenas o BandSports exibirá os Jogos.