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

Movimento

Inspiração pra fazer da atividade física um hábito


Prática de atividade física aumentou no Brasil em 2020, mostra pesquisa

Giulia Granchi

Do VivaBem, em São Paulo

16/12/2020 11h51

A pandemia do novo coronavírus alterou os hábitos de praticantes de esporte no mundo inteiro.

Sem poder realizar treinos ao ar livre e na academia por um período, ou sem sentir-se seguro para isso, além de precisar lidar com os efeitos emocionais do isolamento, parte dos atletas teve sua rotina de exercícios virada de ponta cabeça.

Mas por mais que os hábitos tenham mudado, a comunidade esportiva conseguiu se adaptar à nova rotina, criar novos hábitos e se manter ativa em meio às restrições impostas pelo vírus. É o que mostra o Year in Sport, relatório anual divulgado nesta quarta-feira, 16, pelo Strava, plataforma online de registro de atividades físicas.

O Strava conta com uma comunidade esportiva com mais de 73 milhões de atletas no mundo -- mais de 9,5 milhões só no Brasil.
Nos 12 meses avaliados - boa parte vividos em meio à pandemia --, a comunidade global realizou 21,5 milhões de atividades por semana e percorreu 17 bilhões de quilômetros, números muito acima das previsões iniciais.

No mesmo período, a plataforma recebeu dois milhões de novos integrantes, somando, ao todo, mais de 73 milhões de usuários.

No começo da pandemia no Brasil, em março, os registros no Strava caíram no início do mês, mas, mesmo após algumas restrições impostas pela pandemia, cresceram 5% acima do esperado.

Só no Brasil, em 2020, foram percorridos 133,1 milhões de km, comparados aos 98,4 milhões de km registrados em 2019. Os homens tiveram a maior distância média percorrida este ano: 5,9 km, contra 5,3 km das mulheres.

No ciclismo, com 1,2 bilhão de quilômetros percorridos no país, os homens tiveram uma distância média de 29,3 km, com e as mulheres, de 22,9 km.

Mulheres aumentaram mais a frequência de treinos

Globalmente, as mulheres jovens, com idade entre 18 e 29 anos aumentaram a frequência de atividades em 45,2%, quando comparadas ao ano ado, enquanto os homens cresceram 27,3%.

No Brasil, esse dado também tem as mulheres na frente, com um aumento de 43,8% de registros contra 30% a mais feito pelos homens na mesma faixa etária.

As brasileiras, em todas as faixas etárias, superaram ou se igualaram aos em relação ao número de atividades registradas na plataforma. Também houve crescimento no registro de atividades em todas as faixas de idade dos dois sexos, quando comparado 2019 e 2020.