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

Torcedores vão a perfil da mulher de T. Mendes criticar entrada em Neymar

Thiago Mendes e sua esposa, Kelly, na chegada ao Lyon - Reprodução
Thiago Mendes e sua esposa, Kelly, na chegada ao Lyon Imagem: Reprodução

Do UOL, em São Paulo

15/12/2020 09h45

Kelly Mendes, mulher do jogador Thiago Mendes, do Lyon, foi alvo de ataques no Instagram após uma entrada do marido em Neymar, do PSG. O choque entre os jogadores aconteceu na partida de domingo (13), pelo Campeonato Francês.

Fãs do camisa 10 do PSG foram ao perfil da influenciadora criticar as habilidades de Thiago Mendes, e outros aproveitaram a situação para proferir ofensas ao casal.

No último lance do jogo, Neymar tentava armar jogada na intermediária, quando levou uma tesoura do brasileiro Thiago Mendes. Exames realizados no tornozelo esquerdo do jogador não mostraram fratura. De acordo com o PSG, o craque brasileiro sofreu uma entorse e ficará afastado, inicialmente, por três semanas.

Críticas e ofensas

"Thiago Mendes, muda de esporte, vá pro UFC", pediu um internauta, que chegou a marcar o perfil do jogador.

"Seu marido é um jogador covarde! E não se vanglorie em cima disso porque é ridículo!!", escreveu um internauta.

"Teu marido é um verme", ofendeu um outro.

"Pra quê aquele entrada criminosa, faltava 1 min (sic)", questionou uma mulher.

"O que inveja não faz, né? seu marido machucou o nosso menino Ney por querer (sic)", afirmou uma segunda seguidora.

Fãs defendem

Da mesma forma que fãs de Neymar foram ao perfil de Kelly fazer críticas sem sentido, fãs da influenciadora e outros torcedores saíram em defesa dela e de Thiago.

"Gente, parem de vim no Instagram dela e fazer esses comentários maldosos e xingamentos!! Quem são vocês para julgarem? Deus? Pelo amor né! (sic)", escreveu uma fã.

"Gente, a mulher não tem responsabilidade pelo que o marido fez. Vamos ter bom senso...", pediu outro internauta.

"Qual a necessidade de criticar uma pessoa gratuitamente dessa forma? As pessoas estão cada vez mais doentes. Um jogo de futebol acontece isso, é comum acontecer. E se fosse ao contrário??? Lembrem que o Thiago Mendes tem família, esposa, mão, pai e filhos... bando de hipócritas", criticou esse outro.

Thiago se desculpou

O volante brasileiro Thiago Mendes publicou um vídeo na madrugada de ontem (14) em sua conta no Instagram. Na gravação, Thiago Mendes registrou seu "sincero pedido de desculpas" a Neymar.

"Estou gravando esse vídeo para pedir desculpas a Neymar. Espero que ele esteja bem. Em hipótese nenhuma eu tive intenção de machucá-lo", afirmou o volante do Lyon no vídeo publicado em sua conta no Instagram. "Sabemos que Neymar é um dos melhores jogadores do mundo. Assim como o povo brasileiro, eu também iro o futebol dele. Espero que nada de grave tenha acontecido, que ele possa se recuperar rapidamente e trazer alegria ao torcedor", disse Thiago Mendes na gravação.