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

Neymar está perto de atingir marca de CR7 e Romário em artilharia

Neymar comemora gol pelo PSG no confronto contra o Olympique de Marselha, pelo Campeonato Francês, no Parque dos Príncipes. 17/04/2022 - FRANCK FIFE/AFP
Neymar comemora gol pelo PSG no confronto contra o Olympique de Marselha, pelo Campeonato Francês, no Parque dos Príncipes. 17/04/2022 Imagem: FRANCK FIFE/AFP

Do UOL, em São Paulo

29/04/2022 04h00

Neymar está prestes a bater uma marca que apenas Cristiano Ronaldo e Romário têm na carreira: a de marcar 100 gols por três clubes diferentes. O craque do PSG atualmente tem 98 gols e pode atingir o feito já nesta sexta-feira (29), se for escalado para enfrentar o Strasbourg pelo Campeonato Francês.

Pelo Santos, o atacante marcou 138 gols em 230 jogos entre 2009 e 2013. Segundo dados do acervo do clube, Neymar é o 13º maior artilheiro na história santista. No Barcelona, o brasileiro participou de 186 jogos oficiais e balançou as redes adversárias em 105 oportunidades em quatro anos. Neymar ocupa a posição de número 12 entre os maiores goleadores da história do clube catalão.

No PSG desde 2017, Neymar, com 98 gols, já está na lista dos cinco maiores artilheiros da história do PSG, atrás apenas de Edinson Cavani (200), Kylian Mbappé (165), Zlatan Ibrahimovic (156) e Pauleta (109).

Com o PSG, o camisa 10 acumula 11 títulos —o mais recente foi a conquista antecipada do Campeonato Francês, na semana ada

Espaço ocupado apenas por Romário e Cristiano Ronaldo

Romário em ação pelo Vasco em partida contra o Gama pela Copa João Havelange em 2000 - Allsport/ALLSPORT - Allsport/ALLSPORT
Romário em ação pelo Vasco em partida contra o Gama pela Copa João Havelange em 2000
Imagem: Allsport/ALLSPORT

Romário atingiu a marca que Neymar está prestes a alcançar jogando por Vasco, marcando 265 gols; Flamengo, com 184, e PSV, com 129. O baixinho ficou quase 20 anos como o único jogador a conquistar o feito.

Em maio do ano ado, no entanto, Cristiano Ronaldo igualou o feito do brasileiro, ao marcar seu 100º gol pela Juventus, na vitória de 3 a 1 sobre o Sassuolo. O português ainda fez mais um gol antes de deixar o time italiano.

Pelo Real Madrid, ele balançou as redes 450 vezes, além de ter acumulado 141 gols nas duas agens pelo Manchester United. Das equipes pelas quais ou, apenas no Sporting o português não comemorou o centésimo gol. Quebrador de recordes nato, Cristiano Ronaldo é também o maior artilheiro por seleções da história, com 115 gols pela equipe portuguesa.

Agora, Neymar tem a chance de entrar neste hall exclusivo do futebol mundial, e o feito de Cristiano Ronaldo, o único a marcar mais de 100 gols por equipes de três países diferentes —feito que Romário não conseguiu.