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

OPINIÃO

Alicia: Scarpa hoje é tão importante como Veiga para o Palmeiras

Colaboração para o UOL, em Aracaju

30/06/2022 04h00

O Palmeiras atropelou o Cerro Porteño no segundo tempo e venceu por 3 a 0, fora de casa, no jogo de ida das oitavas de final da Libertadores. O resultado deixou a equipe muito perto da classificação, já que poderá até perder por dois gols de diferença na semana que vem no Allianz Parque para chegar às quartas de final. Rony, duas vezes, e Murilo fizeram os gols da vitórias. Nos dois tentos do "Rústico'', quem também brilhou foi Gustavo Scarpa, com es precisos.

Na Live do Palmeiras, transmitida pelo UOL Esporte logo após as partidas do Verdão, os jornalistas Alicia Klein e Danilo Lavieri destacaram a importância de Scarpa hoje no time de Abel Ferreira. Segundo a dupla, o meia foi fundamental durante a ausência de Raphael Veiga, que fez ontem apenas sua segunda partida após se recuperar de lesão e ainda está longe de sua melhor forma. Para Alicia, Scarpa hoje é tão importante quanto Veiga para a equipe.

"O Scarpa fez com que a ausência do Veiga, um dos melhores jogadores do Brasil e da América do Sul, não fosse sentida, é um feito incrível. Vamos precisar ver os dois atuando juntos, com a volta do Veiga ele não atua na posição de preferência, mais centralizado, até por isso com a ausência do Veiga ele brilha mais. Agora, ele acaba jogando pelo lado do campo, mas é fato que o Scarpa hoje é muito importante para o Palmeiras, tão importante como o Veiga."

"São muitas participações diretas em gols, seja na bola parada, nos lançamentos, é muito difícil um jogo do Palmeiras não ter um gol com lance do Scarpa", analisou Alicia.

Na vitória no Paraguai, Scarpa participou dos dois primeiros gols de forma decisiva. Primeiro colocou na cabeça de Rony, e depois achou Dudu, que só rolou para o atacante fazer seu segundo gol contra o Cerro — e tornar-se o maior artilheiro do Palmeiras na história da Libertadores, com 16 bolas na rede. Curiosamente, Rony disputa o posto gol a gol com Veiga.

Lavieri também elogiou a capacidade decisiva de Scarpa e destacou que, com o retorno de Raphael Veiga, ele volta a jogar mais pelos lados mas com liberdade para se movimentar, criar e finalizar pelo meio.

"Com o Veiga, Scarpa muda um pouco o estilo de jogar, mas consegue um bom rendimento. Esse time foi forjado no final do ano ado com o Scarpa jogando pela esquerda, ele sabe jogar assim, em determinados momentos vai um pouco mais para o meio, quando o Veiga cai pela direita, ele tem liberdade para jogar pelo meio. Scarpa fez uma partida decisiva."

O colunista do UOL disse que, com a boa fase de Scarpa e a volta de Veiga, que antes da lesão era pedido pelos palmeirenses na Copa do Mundo, o técnico Abel Ferreira ganha opções. "Não gosto desse termo, mas é a famosa 'dor de cabeça boa', o time tem muitas alternativas de montagem, e o Abel sabe montar o time ideal", afirmou Lavieri.

Não perca! A próxima edição da Live do Palmeiras será no sábado (2), logo após a partida contra o Athletico Paranaense, pelo Campeonato Brasileiro. Você pode acompanhar a live pelo Canal UOL, no app Placar UOL, na página do Palmeiras no UOL Esporte ou no canal do UOL Esporte no Youtube.