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

Palmeiras

Felipe Melo diz que alguns colegas 'foram frouxos' em briga no Uruguai

Felipe Melo acerta soco em jogador do Peñarol após a partida - REUTERS/Andres Stapff
Felipe Melo acerta soco em jogador do Peñarol após a partida Imagem: REUTERS/Andres Stapff

Colaboração para o UOL, em São Paulo

15/12/2021 15h02

Após encerrar uma agem de cinco anos pelo Palmeiras, marcada pela conquista de cinco títulos, Felipe Melo falou sobre outro episódio marcante do início de sua trajetória pelo clube: a briga com jogadores do Peñarol na Copa Libertadores da América de 2017. O meio-campista disse que alguns de seus companheiros que fugiram da confusão foram 'frouxos'.

O volante nomeou também alguns colegas que, segundo ele, ajudaram na briga, como Fernando Prass, Zé Roberto e Yerry Mina.

"Ali no jogo, acabou e eles vieram para cima. Como já aconteceu antes, outros atletas e times recuaram, eles acharam que a gente ia recuar também. No caso, eu. Quando ele estava vindo, eu pensei: 'ele vai tomar a primeira, se outro vier, vai tomar também'. Foi o que aconteceu. E ele tomou a primeira e se fez de vítima", declarou Felipe, que complementou:

" No nosso time tinham uns frouxos também, que saíram caminhando. Mas teve um pessoal que foi ponta firme. A grande maioria estava com a gente. Alguns não são da confusão, o Borja e o Guerra saíram. O próprio Prass, tem uma cena em que ele aparece cercado por cinco, o Mina 'foi pra dentro', o Zé Roberto."

Felipe Melo disse que a lembrança deste episódio é agridoce. O meio-campista reconheceu que não gostaria de ter sua imagem associada a cenas de violência, ressaltando que muitas crianças que torcem para o Palmeiras o iram, mas disse também que não pensa em outro jeito de reagir a uma situação daquelas.

"Eu me lembro disso com pesar porque eu sou exemplo para crianças, várias pessoas e não é [a mensagem] que eu quero ar", declarou o jogador.

"Mas, ao mesmo tempo, eu entendo que as pessoas têm que se defender. Se eu não me defendo, se bobear, a gente não estaria conversando hoje. E o meu pai não me criou para tomar tapa na cara de vagabundo. A gente dá tapa na cara de vagabundo. É ruim, hein. Nada de tomar tapa na cara de vagabundo", finalizou.

Palmeiras