;(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 marca de pênalti em goleada do PSG e reclama de entradas: "Perigoso"

Neymar comemora gol do PSG sobre o Waasland Beveren - Aurelien Meunier - PSG/PSG via Getty Images
Neymar comemora gol do PSG sobre o Waasland Beveren Imagem: Aurelien Meunier - PSG/PSG via Getty Images

João Henrique Marques

Colaboração para o UOL, em Paris (FRA)

17/07/2020 16h03Atualizada em 17/07/2020 17h19

Neymar foi o protagonista da primeira parte do amistoso de duas horas de duração contra o Waasland-Beveren, da segunda divisão da Bélgica, na noite desta sexta-feira, no Parque dos Príncipes, em Paris O brasileiro teve duas cobranças de pênalti, tendo convertido a primeira e rolado a bola para Icardi marcar na segunda tentativa. O confronto ainda teve momentos tensos, com o atacante reclamando de duras entradas do adversário. O PSG venceu os primeiros 60 minutos por 4 a 0, com gols de Icardi, Neymar e Mbappé e um contra. O resultado final do amistoso foi 7 a 0 para o PSG.

"É um pouco perigoso, entradas que nos dão num jogo amistoso, que não vale nada, vale só para nos preparar. Temos que ter cuidado", disse Neymar em entrevista à PSG TV.

A queixa de Neymar foi especificamente ao volante Bizimana. Ele praticou marcação dura sobre o brasileiro, dando pontapé e levando a loucura todo o time do PSG. Di Maria, Verratti e o próprio Neymar chegaram a revidar os atos com faltas violentas no jogador adversário.

Irritado, Neymar chegou a discutir bastante com Bizimana e também com o árbitro do amistoso. A resposta do brasileiro foi com vários dribles em um duelo cheio de espaço em campo, com as duas equipes distante de um bom condicionamento físico. Umas das jogadas de efeito de Neymar no amistoso teve pedalada, dribles em sequência e e à la Ronaldinho Gaúcho, virando a cabeça e olhando para o lado contrário do alvo.

"Muito feliz, voltar a jogar em casa com apoio da torcida. Estamos nos preparando pouco a pouco para atingir o máximo quando chegar às finais, que agora é o que mais nos importa", disse Neymar.

O time titular do PSG foi formado por: Navas; Kehrer, Marquinhos, T. Silva, Bakker; Verratti, Gueye, Neymar; Di Maria, Icardi e Mbappé.

O segundo período do amistoso também teve a duração de uma hora, com dois tempos de 30 minutos. Nele, o PSG mudou os 11 jogadores, utilizando também alguns jovens formados na base. A curiosidade é que o Waasland-Beveren tinha 10 jogadores ao fim do primeiro trecho do jogo, já que o zagueiro Vukotic foi expulso. No entanto, o time voltou a campo com 11 jogadores.

Nos 60 minutos complementares, o PSG venceu por 3 a 0. Choupo-Moting, duas vezes, e Mbe Soh, foram os autores dos gols.