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

Scheffer treinou em açude e improvisou academia em casa na pandemia

Beatriz Cesarini

Do UOL, em Tóquio

26/07/2021 23h21

A pandemia de covid-19 não somente adiou as Olimpíadas de Tóquio-2020 em um ano, como despertou a criatividade dos atletas. O mais novo dono da medalha de bronze do Brasil, conquistada na noite desta segunda-feira (26), nos 200m livre, o nadador Fernando Scheffer foi um dos atletas que precisou reinventar métodos de treinamento para não perder ritmo. Sem conseguir treinar no seu clube, o Minas Tênis, o gaúcho de 23 anos montou um espaço dentro de sua própria casa para manter a forma e chegou a nadar em um açude.

Assim que a pandemia estourou no Brasil, em março de 2020, os clubes fecharam as portas. Fernando Scheffer, então, ficou impossibilitado de treinar em uma piscina. Para não perder o condicionamento físico, ele tinha a poucos metros equipamentos como uma bicicleta ergométrica, halteres e outros.

"Foi um ciclo bem complicado. A gente ou muitos meses sem treinar. Sempre coloquei na cabeça dar o nosso melhor com o que a gente tinha nas mãos. ar por tudo isso nos fortaleceu, nos deixou cascudo. ar por isso foi importante para a gente ver que a gente é capaz de muita coisa. Acreditar é uma coisa que a gente tem um pouco de dificuldade de fazer às vezes. Muita gente acreditou junto comigo então não tinha como eu acreditar também. Deixei fluir, deu tudo certo", refletiu o nadador.

Um ensaio de volta à normalidade veio em dezembro do ano ado, durante o campeonato da Liga Internacional de natação, disputado na Hungria. Quando ele retornou ao Brasil, a infecção de coronavírus entrou em descontrole novamente e, mais uma vez, tudo foi fechado.

Com vaga confirmada nas Olimpíadas de Tóquio desde abril de 2020, Scheffer não poderia parar de se exercitar. A meses do início das disputas de natação no Japão, o atleta decidiu alugar um sítio com alguns colegas do Minas Tênis Clube e eles aram a nadar em um açude. Claro que não era parecido com uma piscina olímpica.

"Logo quando fechou, ficamos dois meses sem cair na água. Depois conseguimos piscinas em condomínio, mas pequenas, de 15m, não eram piscinas ideais. Tem um colega de equipe nosso, o Vinicius Lanza, que tem um sítio e lá tem um açude de 60 metros. A gente improvisou lá, colocamos umas raias, juntamos uns cinco amigos e ficamos lá treinando por 10 dias", contou Scheffer.

Após mais de um ano de incertezas e dificuldades, Scheffer chegou em Tóquio, surpreendeu e chegou ao tão sonhado pódio olímpico ao lado dos britânicos Tom Dean , que ficou com o ouro, e Duncan Scott, medalhista de prata.