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

Dani Alves dá e pra gol de goleiro, e técnico diz que ele vai pra Copa

Daniel Alves cumprimenta goleiro Julio González após gol do Pumas - Jaime Lopez/Jam Media/Getty Images
Daniel Alves cumprimenta goleiro Julio González após gol do Pumas Imagem: Jaime Lopez/Jam Media/Getty Images

Do UOL, em São Paulo

11/09/2022 09h42

Depois de um começo de agem decepcionante pelo Pumas, o experiente Daniel Alves começa a dar os primeiros sinais de adaptação ao novo clube no futebol mexicano. Ontem (10), o brasileiro deu um e para gol pelo segundo jogo consecutivo. O adversário da vez foi o Toluca, num empate em 2 a 2 alcançado somente nos acréscimos do segundo tempo.

Dani cobrou escanteio pelo lado esquerdo do ataque na entrada da pequena área e Julio González se antecipou à marcação para marcar de cabeça. O goleiro brasileiro Tiago Volpi se esticou e chegou a tocar na bola, mas não evitou o gol. O curioso é que Julio González também é goleiro e se mandou para a área no desespero nos minutos finais, já que o Pumas faz má campanha no Apertura do Campeonato Mexicano.

Na rodada ada, Daniel Alves já tinha dado uma assistência na vitória por 4 a 1 sobre o Querétaro, num lance aos 23 minutos do segundo tempo. O brasileiro recebeu a bola também do lado esquerdo do ataque, deu um drible para trás que deixou o marcador ajoelhado no chão e cruzou na medida para o atacante argentino Juan Dinenno.

A boa semana de Dani Alves no futebol mexicano contrasta com seu momento na seleção brasileira. Tite convocou 26 jogadores para os amistosos do fim deste mês contra Gana e Tunísia na última sexta-feira (9) e o nome do lateral de 39 anos não apareceu. Inclusive, o técnico listou só Danilo na lateral direita, dizendo que pode improvisar os zagueiros Militão ou Ibañez na posição.

Para piorar, o preparador físico da seleção Fábio Mahseredjian disse que um dos motivos para a ausência do veterano na convocação foi físico. "Nesse momento ele não se encontra em condições de trabalhar conosco nesses dois jogos", disse, depois de explicar o caso:

"O César Sampaio [auxiliar da seleção] e o Guilherme os [fisiologista] estiveram na Cidade do México, acompanharam dois jogos, treinamentos, estiveram com o atleta uma tarde toda. Dani chegou ao México e cinco dias após sua chegada já estreou pelo Pumas, então não teve pré-temporada adequada e também perdeu peso corporal e provavelmente massa magra também por uma gastroenterite, isso claramente afetou sua performance em campo no aspecto físico. Conversamos com ele in loco e ontem mesmo falamos na necessidade de investir em treinamento de força e potência para que ele volte ao nível que se apresentou em jogos recentes conosco", relatou Mahseredjian.

Como mostrou o UOL, a ausência na convocação mais recente não significa que Daniel Alves está fora dos planos de Tite para a seleção. Ele ainda é um dos preferidos para a lista que será divulgada em 7 de novembro para a Copa do Mundo do Qatar.

No México, a confiança no lateral é grande. Andrés Lillini, seu treinador no Pumas, disse em entrevista coletiva após o jogo contra o Toluca que a convocação de Daniel Alves para a Copa do Mundo é um fato: "Eu conversei com ele, que me explicou a situação [da não convocação]. É uma situação interna, mas ele com certeza vai para a Copa. O melhor lateral da história do futebol, do mundo, não pode ficar fora da Copa. Então nós vamos trabalhar para que isso seja possível."

Daniel Alves tem três es para gol em dez jogos pelo Pumas. Ele atuou em todos os minutos de todos os jogos desde que foi contratado. O próximo desafio é no próximo domingo (18), contra o Cruz Azul.

Veja as assistências de Dani Alves nos últimos jogos: