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

Lavieri: 'Copinha teve bons valores, mas Endrick me deixou enfeitiçado'

Do UOL, em São Paulo

25/01/2022 13h24

Em 2022, a Copa São Paulo de Juniores foi disputada por jovens jogadores de até 21 anos de idade. No meio dos 'marmanjos', porém, quem se destacou foi um garoto de apenas 15 anos. Endrick brilhou na Copinha e foi o grande destaque do torneio, sendo o principal nome da conquista inédita do título do Palmeiras. Ele anotou um dos gols do Verdão na goleada de 4 a 0 sobre o Santos na final, disputada hoje (25) no Allianz Parque.

Na Live Especial do UOL Esporte, os jornalistas Isabela Valiero e Danilo Lavieri debateram sobre quem foi o maior destaque desta edição da Copinha. Ambos concordaram: o jovem atacante palmeirense atraiu todos os holofotes no torenio.

  • De segunda a sexta, às 17h, o Canal UOL traz, ao vivo, as últimas informações do mercado da bola. Inscreva-se no YouTube de UOL Esporte e confira também as lives dos clubes, Posse de Bola e UOL News Esporte:

"O campeonato teve várias explosões de jogadores, como no Vasco, Santos e Corinthians. Foi um torneio, que não foi disputado no ano ado por conta da covid-19, com um alto nível. Não houve tantos problemas como estamos acostumados de gramados alagados. Fiquei tão enfeitiçado pelo Endrick que é até difícil vir outro nome além dele", elogiou Lavieri.

Com toda a badalação sobre Endrick, é natural que os torcedores palmeirenses se empolguem e queiram vê-lo jogar entre os profissionais. Para Isabela, porém, recomendou cautela. "Realmente tem que ir com calma e cuidado. Ele é muito novo e ainda precisa de jogos para amadurecer", comentou.

Lavieri também pediu cautela para não queimar etapas com a jovem promessa alviverde. "Fica difícil não falar do Endrick. Não é à toa que ele está em todas as manchetes e mesas de discussão, do boteco ao restaurante mais chique. Não tem como não falar desse garoto, que tem apenas 15 anos. Ele não pode nem jogar o Paulista nem o Brasileirão por causa da idade", completou o colunista do UOL.

Não perca! A próxima edição da Live Especial do UOL Esporte será nesta terça-feira (25), às 17h (horário de Brasília), com a análise das últimas novidades do mercado da bola. Você pode acompanhar o programa pelo Canal UOL, no app Placar UOL ou no canal do UOL Esporte no YouTube.