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

"Maturidade desenvolvida" faz Neymar ganhar funções na seleção, diz Tite

Neymar, durante treino da seleção brasileira hoje (12), no CT Joaquim Grava - Lucas Figueiredo/CBF
Neymar, durante treino da seleção brasileira hoje (12), no CT Joaquim Grava Imagem: Lucas Figueiredo/CBF

Gabriel Carneiro

Do UOL, em São Paulo

12/10/2020 15h31

Neymar, como sempre, tem sido um dos principais focos de atenção da comissão técnica da seleção brasileira nestas duas primeiras rodadas das Eliminatórias da Copa do Mundo do Qatar. Para além das dores nas costas que o fizeram perder dos treinos no período de uma semana, o camisa 10 ou a ter novas funções e responsabilidades no time de Tite.

Em vez de jogar como atacante aberto como na maior parte de sua carreira e dos jogos na seleção, com amplitude, um contra um e velocidade, Neymar faz agora uma função mais de articulação, de criação de jogadas, do que de definição. Não à toa, na goleada por 5 a 0 sobre a Bolívia, ele deu duas assistências e não fez nenhum gol. Nas palavras de Tite, é mais "arco" do que "flecha".

Eu vi essa definição do Gustavo Villani [narrador da Globo], sobre um jogador que é arco e flecha, armador e finalizador. Ele [Neymar] desenvolveu essa posição mais atrasada para municiar outros jogadores como aconteceu no jogo, de dar duas assistências, ter a penúltima bola, romper a marcação. É ter essas duas possibilidades, procuramos potencializar os atletas individualmente."

Para além da definição tática, Tite argumentou que só é possível exigir novas responsabilidades de Neymar graças aos aspectos fora de campo: "Na parte técnica, essa liberdade maior de flutuar para ser um jogador de articulação e deixar o mais agudo para ser opção dele favorece. Essa adaptação, até pelo próprio PSG, temos que saber e ter a sensibilidade de saber, que ela tem espaço conforme faz em seu clube (...) Neymar é homem, não é mais garoto e já tem essa maturidade desenvolvida. Essa situação está cada vez mais em evolução, o que me deixa muito feliz."

O treinador da seleção também foi questionado sobre a parte física do camisa 10: "Fisicamente ele está legal, treinamos normal ontem e hoje, já sem nenhum problema. Depois do treino O Fabio [Mahseredjian, preparador físico] e o Ricardo [Sasaki, fisioterapeuta] colocaram que ele está bem, tranquilo."

Mais arco e menos flecha, Neymar será titular da seleção brasileira amanhã (13), às 21h, contra o Peru, pela segunda rodada das Eliminatórias, no estádio Nacional de Lima.