;(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 Patrícia e Rebecca perdem para os EUA por 2 sets a 1 no vôlei de praia

A dupla brasileira Ana Patricia/Rebecca durante o jogo contra Claes/Sponcil, dos Estados Unidos, no vôlei de praia - JOHN SIBLEY/REUTERS
A dupla brasileira Ana Patricia/Rebecca durante o jogo contra Claes/Sponcil, dos Estados Unidos, no vôlei de praia Imagem: JOHN SIBLEY/REUTERS

Do UOL, em Sâo Paulo

30/07/2021 21h59

Ana Patrícia e Rebecca perderam para as norte-americanas Kelly Claes e Sarah Sponcil por 2 sets a 1 (17/21; 21/19 e 15/11) na disputa do vôlei de praia nas Olimpíadas de Tóquio 2020, mas garantiram a classificação para a próxima fase da competição.

Com o resultado, a dupla brasileira, que está na segunda colocação do Grupo D, espera a combinação de resultados para saber qual será o caminho no 'mata-mata'.

As duas primeiras duplas de cada grupo e as duas melhores terceiras colocadas vão diretamente às oitavas de final. As duplas restantes disputam as vagas que sobram em uma repescagem. "Não acho que faltou concentração. Não tivemos um começo bacana no terceiro set. No segundo set a gente teve uma sequência de erros que acabou ficando difícil ir buscar. Isso são coisas de jogo, teve coisas que não saíram, um saque, coisas que não estamos acostumadas a errar. Mas acontece, a gente tem é que fortalecer a cabeça para ir para os próximos jogos melhor, com os fundamentos melhores. A gente sabe que não está conseguindo colocar o nosso melhor vôlei dentro da quadra, mas a gente vai conseguir", resumiu Ana Patrícia, em entrevista ao SporTV.

As brasileiras fecharam a fase de classificação com duas derrotas e uma vitória: na estreia, elas bateram as quenianas Makokha e Khadambi. Na segunda rodada, as brasileiras perderam para Graudina e Kravcenoka, da Letônia.

"Essa questão de fazer jogos de 2 sets a 1, isso dá um volume de jogo a mais. Isso é muito bom. A gente ainda não está conseguindo jogar o nosso voleibol, mas a cada partida a gente tem uma melhora, um ponto positivo. Nesse jogo tomamos muitas decisões erradas, porque a gente defendeu muitas bolas, a gente bloqueou, não erramos muito e. Foram decisões erradas, vamos buscar melhorar para os próximos jogos", finalizou Rebecca

Primeiro set disputado

Brasil e Estados Unidos disputaram ponto a ponto o primeiro set do jogo. Concentradas, as brasileiras deixaram para trás o jogo ruim contra a Letônia, e usaram muito bem o bloqueio de Claes e Sponcil no início.

A dupla norte-americana acertou sua estratégia e colou no placar. O placar foi decidido em um bloqueio de Ana Patrícia, fechando em 21 a 17 para o Brasil.

Desatenção no segundo set

No segundo set, as norte-americanas cresceram. Explorando os erros de recepção, Claes e Sponcil conseguiram impor uma vantagem que chegou a ser de quatro pontos. Ana Patrícia e Rebecca correram atrás do prejuízo, colando no placar no momento decisivo do set. A vitória da parcial, porém, ficou com as americanas, que fecharam em 21 a 19.

EUA fecha o jogo

Claes e Sponcil abriram 6 a 1 no set decisivo, e de novo, o Brasil precisou buscar o resultado. Assim como nos dois primeiros sets, a dupla contou com uma agem precisa de Rebecca no saque. Recuperando a confiança, conquistaram pontos preciosos também nos ataques de Ana Patrícia. O set mais curto, porém, não deu tempo para mais uma reação, e os Estados Unidos fecharam o jogo em 15 a 11.