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

Como fica a seleção se Daniel Alves não tiver clube após deixar o Barcelona

Daniel Alves, lateral-direito da seleção brasileira - Lucas Figueiredo/CBF
Daniel Alves, lateral-direito da seleção brasileira Imagem: Lucas Figueiredo/CBF

Danilo Lavieri, Gabriel Carneiro e Igor Siqueira

Do UOL, em São Paulo e Doha

15/06/2022 17h36

Classificação e Jogos

O futuro de um dos capitães da seleção brasileira está em jogo. Daniel Alves não terá o contrato renovado com o Barcelona e, cinco meses antes da Copa do Mundo, sua carreira está rodeada de incertezas. Por consequência, a construção do Brasil de Tite para o Mundial ganha uma dúvida relevante — pelo menos até que se bata o martelo sobre o destino do lateral-direito.

Hoje, Daniel Alves não tem a titularidade absoluta na seleção, mas é tratado como um nome certo para as duas vagas no setor, ao lado de Danilo. A questão é que tê-lo fora do baralho pode afetar outras estruturas já desenhadas, quando se pensa nos 26 jogadores que Tite levará ao Qatar.

Daniel Alves já ficou fora da seleção ao longo deste ciclo, justamente quando deixou o São Paulo e ficou sem contrato em setembro de 2021, antes de fechar com o Barcelona. Isso abriu brecha para que Emerson Royal, lateral-direito do Tottenham, aparecesse nas convocações e ganhasse minutos. Mas a substituição de um pelo outro pode não ser o caminho que Tite tomará se Dani realmente não chegar em condições de jogar a Copa.

Na data Fifa ada, com jogos na Coreia do Sul e no Japão, Tite testou um dos caminhos: diante dos japoneses, usou Eder Militão como lateral-direito, posição na qual já atuou no São Paulo. Outra saída pode ser Fabinho, que originalmente é o reserva de Casemiro no meio-campo, mas se profissionalizou e chegou à Europa como lateral. A experiência ocorreu em um momento no qual Danilo ficou ausente por lesão.

Esse contexto é uma má notícia para Emerson Royal, sobretudo pelo desejo de Tite de levar o máximo possível de opções para o setor de ataque - o treinador aposta no impacto que a velocidade dos jogadores de frente pode ter em um Mundial com jogos a cada três dias e que terá cinco substituições.

Recorrer a Militão ou a Fabinho na lateral vem a calhar por duas questões atuais a respeito de Daniel Alves. No caso da opção pelo zagueiro, amenizar buracos defensivos explorados com certa frequência nas costas do experiente lateral. Fabinho viria a calhar porque Dani, quando a seleção tem a posse, joga como um construtor, pendendo para o meio do campo, enquanto Raphinha é o responsável por esticar a defesa adversária para a ponta.

Tite, no entanto, não desistirá de Daniel Alves tão facilmente, ainda que ele não consiga um clube do porte do Barcelona. Trata-se de um dos homens de confiança, que já foi capitão na Copa América 2019 e tem tudo para carregar a braçadeira no Mundial. Ano ado, quando ficou sem clube, Dani recebeu uma ligação de Tite. O técnico citou que havia "uma torcida" para que o jogador encontrasse seu "melhor caminho".

As Copas do Mundo para Daniel Alves costumam ser momentos desfavoráveis. Em 2010, ele era reserva, mas achou espaço no time de Dunga ao longo da competição jogando na faixa direita do meio-campo. Em 2014, perdeu a concorrência para Maicon. Em 2018, perdeu o Mundial por causa de uma lesão.

O que vem agora? Ele disse nas redes sociais que um "leão, ainda que tenha 39 anos, continua sendo um leão".