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

Julio Gomes: Vinicius Júnior é uma realidade e ele não apanha como o Neymar

Do UOL, em São Paulo

08/12/2021 13h41

Aos 21 anos, Vinicius Junior faz uma temporada de destaque no Real Madrid, se colocando como um dos protagonistas de um dos maiores clubes do mundo e para muitos é apontado como o melhor jogador brasileiro em atividade neste momento, ainda que tecnicamente possa não ser tão completo como outros nomes, como Neymar. Ao mesmo tempo, a percepção sobre ele já é diferente em relação a temporadas anteriores, quando era criticado.

No UOL News Esporte, Julio Gomes cita um amigo jornalista que esteve no estádio Santiago Bernabéu para o jogo entre o Real Madrid e a Inter de Milão, pela Liga dos Campeões, e destaca o fato de ele ser acompanhado por mais marcadores, ao mesmo tempo em que não é tão caçado em campo como Neymar pelo fato de ser mais objetivo.

"O Edu Alvarez que é um colega da BBC Radio estaca no estádio ontem e disse que o que mais chamou a atenção foi que claramente os adversários hoje já não têm mais essa de deixar de lado o Vinícius Júnior, são dois ou três em cima, já mudou completamente o status dele", afirma Julio.

"O Vinicius é uma realidade, ele melhorou na finalização, ele não apanha igual ao Neymar, ele faz as carretilhas, ele dribla, ele humilha no futebolístico, mas ele joga quieto, ele não fica falando, ele não fica xingando, que é o que faz com que os outros jogadores batam tanto no Neymar, não é o drible, é a atitude e o Vinícius Júnior tem uma atitude de jogar bola, de ir para dentro dos caras. Vai apanhar, vai cair, levanta, não fica reclamando", completa.

Vitor Guedes afirma que o carisma e o lado 'peladeiro' de Vinicius Junior são fatores que ajudam o jogador revelado pelo Flamengo na avaliação de qual brasileiro consegue se destacar mais no futebol europeu e critica o fato de Tite não dar ao atleta do Real Madrid a titularidade na seleção brasileira.

"Eu levo em consideração o carisma, a história e o Vinícius Júnior tem um quê de peladeiro que o brasileiro gosta. Ele é atacante, está melhorando taticamente, mas ele tem aquelas carretilhas, aqueles lances, ele é o atacante que tinha um defeito muito grande, chutava muito mal, concluía mal e melhorou muito a finalização dele. Eu acho um absurdo ele não ser titular absoluto da seleção brasileira, acho que é o melhor companheiro ali para o Neymar na frente", afirma Vitor.

"Ele está com uma atitude legal, melhorou o jogo dele e é sim o melhor brasileiro na Europa, está o melhor brasileiro na Europa, acho que o Neymar joga mais bola que ele, mas está melhor do que qualquer um", conclui Julio.