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

Ana Marcela Cunha tem pais atletas e estreou no mar aos 12 anos

Adriano Wilkson

Enviado especial do UOL, em Tóquio (Japão)

03/08/2021 21h10

Ana Marcela Cunha, que hoje venceu a maratona aquática e se tornou a primeira nadadora do Brasil medalha de ouro em Olimpíadas, nasceu em Salvador e foi na Baía de Todos os Santos que ela teve o primeiro contato com as águas do Atlântico. Prodígio desde sempre, aprendeu a nadar com dois anos, e sua primeira competição em piscinas foi aos seis. O talento era nato.

Com 12 anos de idade, Ana Marcela já era nadadora profissional, e fez sua estreia em provas marítimas. Dois anos depois, aos 14, já fazia parte da seleção brasileira. O contato com o esporte não foi novidade para os pais, que são atletas. Ana é filha da ex-ginasta Ana Patrícia Cunha e do ex-nadador George Cunha. São eles que, até hoje, istram a carreira da filha.

Por mais que tenha tido sucesso em provas de fundo, nas piscinas, foi no mar que a baiana descobriu um talento nato —e, a ele, adicionou rotinas de treinos intensas e muito trabalho. Sua primeira medalha em maratonas aquáticas —um bronze— veio aos 14 anos, em uma das maratonas do circuito internacional da Fina (Federação Internacional de Natação).

Esse resultado foi importantíssimo para que a nadadora conquistasse olhares em clubes importantes. Em 2007, ela se mudou para Santos, no litoral paulista, para integrar a equipe de nadadoras da Unisanta. O salário oferecido pelo clube foi suficiente para que os pais largassem o trabalho na Bahia e acompanhassem a filha na nova empreitada.

Em entrevista à Piauí, a atleta relembra os esforços do pai para que ela se mantivesse saudável. "Meu pai sempre teve medo de eu me machucar antes de uma prova; me proibia de fazer educação física e chegar perto da quadra no colégio. Ele sabia que, se eu chegasse, iria correr atrás de uma bola. Certa vez, a escola precisou me segurar a garota na diretoria para me impedir jogar futebol com os colegas. Não adiantou nada. Pulei a janela do diretor e fui mesmo assim."