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

Clodoaldo Silva

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Com as Olimpíadas perto do fim, os heróis paralímpicos entram em cena

O nadador Daniel Dias e o treinador Igor Russi antes de embarcarem para as Paralimpíadas de Tóquio - Reprodução/Instagram
O nadador Daniel Dias e o treinador Igor Russi antes de embarcarem para as Paralimpíadas de Tóquio Imagem: Reprodução/Instagram

05/08/2021 19h44

Na noite dessa quarta-feira, cerca de 130 pessoas da delegação paralímpica brasileira embarcaram para Tóquio. Os primeiros a pisar em solo japonês serão atletas de natação, tênis de mesa, goalball e halterofilismo. De Tóquio, a equipe irá para a cidade de Hamamatsu, local escolhido para fazer o período de aclimatação antes dos Jogos Paralímpicos, que estão marcados para começar em 24 de agosto. Os atletas de outras modalidades irão viajar entre os dias 7 e 25 para o Japão.

A novidade foi a presença do Movimento Verde e Amarelo, do qual tenho a honra de ser o padrinho, que homenageou atletas e deu uma força e tanto para a delegação brasileira. A torcida foi para frente do CT Paralímpico, em São Paulo, com bandeiras, apitos e instrumentos. Foi uma forma de honrar nossos paralímpicos.

Eu já estou torcendo pela equipe brasileira e sei que muitos de nós faremos isso. Afinal, depois de tudo que amos nos últimos tempos, vale a pena a gente gritar e esquecer a realidade cruel que estamos vivendo, nem que seja por duas ou três semanas.

Em um país em que a gasolina está mais de R$ 6, em que vemos pessoas ando fome e frio, que temos que vivenciar discursos ultraados, corrupção, desigualdade, o melhor mesmo é mudar o foco. Dar as mãos e torce pelo Brasil dentro de casa, minha gente!

Bandeira em homenagem a  Ricardo Alves, jogador de futebol de 5   - Movimento Verde e Amarelo - Movimento Verde e Amarelo
Bandeira em homenagem a Ricardo Alves, jogador de futebol de 5
Imagem: Movimento Verde e Amarelo

Resultados

O Brasil participa de Jogos paralímpicos desde 1972, e de lá para cá, soma 301 medalhas, sendo 87 de ouro, 112 de prata e 102 de bronze. O planejamento da equipe brasileira é alcançar o centésimo ouro no Japão. Ao que tudo indica, isso pode ocorrer, visto que no Rio nós subimos ao lugar mais alto do pódio 14 vezes.

Não existe muita previsão de resultados por nome de atletas. Temos Daniel Dias, Edênia Garcia, o futebol de cinco, o atletismo, que é a modalidade com mais medalhas paralímpicas do Brasil, mas temos uma renovação muito grande.

Nós figuramos entre os 20 países com mais medalhas em todas as edições de Jogos Paralímpicos e temos o desafio da pandemia, mas pensemos que todos os países estão no mesmo barco. Agora é hora de fazer o nosso melhor. Faltam 18 dias para os Jogos! Que sejamos fortes o suficiente para demonstrar mais uma vez nossas capacidades e fazer com que o Brasil nos veja como referência. Que possamos contribuir para ter um país mais igual e com menos preconceito. O esporte paralímpico é múltiplo e uma das ferramentas mais poderosas de inclusão do planeta. Agora é hora de dizer: o aquecimento de Tóquio já foi, já que os Jogos Olímpicos estão no fim. Chegou a vez dos paralímpicos! Vamos com tudo, Brasil!