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

Olhar Olímpico

Irmã de Babi, do Botafogo, é a grande aposta do Fluminense

Matheus Babi e Mayara - Arquivo Pessoal
Matheus Babi e Mayara Imagem: Arquivo Pessoal

10/11/2020 12h00

Primeiro foi Matheus Babi que se firmou no Botafogo. Agora é a irmã dele, Mayara Barcelos, que quer mostrar a que veio. A ponteira de apenas 19 anos é a grande promessa o Fluminense para a Superliga Feminina que começa hoje (10) com um duelo contra o São Paulo/Barueri de José Roberto Guimarães.

Em um país onde o futebol é a paixão nacional, Babi ganhou fama antes que a irmã, mas é ela quem pinta como a grande esportista da família. Defende a seleção brasileira nas categorias de base há quatro anos e, na temporada ada, ajudou o Brasil a ficar em sexto no Mundial Sub-20. Com ainda um ano de juvenil pela frente, assumiu a responsabilidade de principal atacante do Fluminense.

Curiosamente, ela só virou jogadora de vôlei porque ele, quatro anos mais velho, já era jogador de futebol. "A gente estava voltando de uma viagem, eu meu pai e ele, e meu antigo técnico chamou ele para jogar. Mas o Matheus já estava na base do Vasco, não podia ir, e o técnico me chamou. Fiquei interessada, fui e estou jogando vôlei até hoje", conta Mayara. O irmão, diz ela, nunca aprendeu a jogar vôlei.

Os dois são de Macaé (RJ), perderam a mãe quando Mayara tinha cinco anos, e foram criados pelos avós, com o pai sempre presente. Matheus logo entrou na base do Vasco, mas depois voltou para Macaé. ou por Grêmio, Macaé de novo, América-RJ, Macaé uma terceira vez, e esse ano chegou fazendo sucesso no Botafogo, aos 23 anos.

Mayara — que tem cada vez mais sido chamada de "Mayara Babi — tem uma trajetória menos inconstante. Aos 12 foi convidada para fazer um teste no Fluminense. Foi aprovada e começou a ar o fim de semana no Rio. "Pegava o ônibus sábado, treinava, dormia na casa de alguma menina do time, jogava domingo, e pegava o ônibus para voltar". Aos 14, pelo talento no vôlei, ganhou bolsa em uma escola particular da capital fluminense, que também lhe ofereceu alojamento.

Irmãos Matheus e Mayara - Arquivo Pessoal - Arquivo Pessoal
Imagem: Arquivo Pessoal

Aos 15, chegou a seleção brasileira e foi MVP do Campeonato Sul-Americano Sub-18, pintando como grande promessa do vôlei nacional. Viajando para competir, enquanto o irmão fazia o mesmo, chegou a ficar um ano inteiro ser ver Matheus. "Minha relação com meu irmão é meio distante porque a gente nunca se encontra. Ficamos um ano sem se encontrar. Ele no Rio Grande do Sul, eu no Flu e na seleção. Até hoje em dia a gente não se encontra direito, fala mais pelo telefone", conta.

Os avós se dividem, ela diz. Botafoguenses, torcem pelo time alvinegro com ou sem Babi no time. Mas aprenderam a gostar de vôlei e também não perdem uma partida do Fluminense. Hoje poderão ver a neta enfrentar o técnico da seleção brasileira, experiência que ela ite que dá um ânimo a mais. "Ainda acho que dá para ir para a Olimpíada de Paris. Depende de mim e tenho tempo pela frente", diz a ponteira, que recusou propostas e optou por seguir no Fluminense até fechar o ciclo como juvenil.

+ Acompanhe o que mais importante acontece no esporte olímpico pelos perfis do Olhar Olímpico no Twitter e no Instagram. Segue lá! +