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

Brasil adianta treino para observar rival e ouve cobranças de Jardine

André Jardine durante treino da seleção olímpica - Alexandre Loureiro/CBF
André Jardine durante treino da seleção olímpica Imagem: Alexandre Loureiro/CBF

Danilo Lavieri

Do UOL, em Armênia (Colômbia)

25/01/2020 15h48

A seleção brasileira mudou o horário do seu treino deste sábado (25), em Armênia, para poder assistir in loco ao jogo da Bolívia, próximo adversário no Pré-Olímpico, na terça-feira (28). Inicialmente marcadas para as 16h, as atividades foram transferidas para 10h, com a intenção de que o grupo inteiro vá ao estádio assistir ao jogo dos bolivianos contra os uruguaios, marcado para 18h (horário local).

O resultado foi um treino feito em um calor forte, com os termômetros se aproximando de 30ºC. Nem assim, André Jardine amenizou as cobranças. Marca de seus treinos na luta pela vaga olímpica, o comandante orientou bastante seus atletas, repetiu jogadas e em todo momento perguntava: "vamos, já tá cansado?".

Durante um dos treinos de ataque contra defesa em meio-campo, o técnico tinha como objetivo trabalhar as jogadas pelas pontas. Insatisfeito com algumas tentativas, ele parou o treino e avisou: "meu time depende bastante dos pontas. A gente controla a bola, a gente troca es e eu preciso de pontas que caiam para dentro".

O recado deu certo, e Antony, Tabata, Pepê e Paulinho foram bastante exigidos em jogadas pelos lados. Dribles e cortes eram incentivados pela comissão e, sempre que a jogada dava certo, o elogio era feito na mesma intensidade da cobrança. O gremista aprovou os métodos.

"É assim mesmo. Ele pede para a gente que é ponta agredir o adversário, fala que pelo lado vamos ter mais profundidade e espaço, tentamos dar o melhor no treino para ir bem nos jogos", afirmou em entrevista coletiva após a atividade.

Depois disso, a seleção ainda fez trabalhos específicos de defesa e de ataque. Foram quase duas horas de treinos. Guga, que apresentou um pouco de cansaço segundo Jardine, foi poupado de parte dos trabalhos e deu lugar a Dodô, do Shaktar Donetsk.

Final da Copinha vira atração

Antes de o trabalho começar, alguns jogadores se reuniram no vestiário para assistir à disputa de pênaltis da Copa São Paulo nos seus celulares. Tão logo o Internacional foi declarado campeão, o treino começou.

Pepê, um dos gremistas no elenco, também assistiu ao jogo e lamentou o resultado. O atacante, no entanto, já elegeu os destaques que poderão ser promovidos ao profissional.

"A gente conseguiu acompanhar um pouco. Assistimos à disputa dos pênaltis. Fico um pouco triste pelo Grêmio ter perdido, mas tem que parabenizá-los pela campanha excelente que fizeram, por ter chegado na final, são grandes jogadores. Tem grandes jogadores como Diego Rosa, Pedro Lucas... Se subirem vão nos ajudar muito", finalizou.