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

Isaquias Queiroz está na semifinal do C1 1.000m da canoagem de velocidade

Demétrio Vecchioli

Do UOL, em Tóquio

05/08/2021 22h00Atualizada em 06/08/2021 05h13

Isaquias Queiroz está nas semifinais do C1 1.000m na canoagem de velocidade. Em busca de sua primeira medalha nas Olimpíadas de Tóquio, o brasileiro foi o primeiro colocado colocado da segunda bateria das classificatórias, com 3:59.894.

Com o resultado, Isaquias não precisará disputar as quartas de final, já que os dois primeiros de cada grupo avançam diretamente para as semifinais. Ele deixou claro que fez questão de fazer uma prova contundente para recuperar a confiança e mandar um recado.

"Nos dias anteriores eu fui bem com o Jacky (Godmann) no C2, quarto lugar não é para todo mundo, é uma grande colocação. Mas eu estou com uma raiva, vontade de ganhar. Claro, isso não quer dizer que vou ganhar, mas vou lutar para isso. Falei com o treinador antes da prova o que queria fazer. Queria mostrar no final quem sou eu, o atual campeão mundial e o cara que vai brigar por essa medalha de ouro", disse ao SporTV.

Na raia 5, Isaquias iniciou bem a prova, sendo o primeiro a cruzar a linha dos 500m. Na segunda metade da prova, o chinês Hao Liu se aproximou do brasileiro. Isaquias, porém, aumentou o ritmo e concluiu os 1.000m isolado na primeira colocação

Esta é a segunda prova de Isaquias em Tóquio. Ao lado de Jacky Godmann, ele foi o quarto colocado no C2 1.000m. As semifinais e a final do C1 1.000m serão na noite de sexta-feira (6), no Brasil, a partir das 21h44 (de Brasília).

Jacky Godmann eliminado

Jacky Godmann parou nas quartas de final do C1 1.000m. O brasileiro foi o sexto colocado da segunda bateria das quartas, com 4:18.208, e não se classificou para as semifinais. Wiktor Glazunow (POL) e Conno Fitzpatrick (CAN) foram os dois primeiros, e seguem na competição.

Antes, na terceira bateria das classificatórias, Jacky foi o quarto colocado ao concluir a prova em 4:24.732, bem atrás dos três primeiros colocados.