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

"Foquinha" de Romero incomoda Felipe Melo: "Toda ação gera uma reação"

Bruno Grossi

Do UOL, em São Paulo (SP)

18/05/2018 15h23

No último domingo, o Corinthians venceu o Palmeiras por 1 a 0 em Itaquera, pela quinta rodada do Campeonato Brasileiro. Nos minutos finais da partida, com os alvinegros já em vantagem, Ángel Romero recebeu na ponta esquerda, dominou de cabeça e emplacou sequência de embaixadinhas também com a cabeça, irritando os rivais. O lance não caiu bem entre os palmeirenses e Felipe Melo falou em tom de alerta contra o paraguaio.

"Eu sinceramente acho que ele não deveria ter feito, porque era 1 a 0 o jogo. Lembro que o Edilson fez isso (na final do Campeonato Paulista de 1999) e foi feia a confusão. Mas como tudo na vida, o mundo gira. Não quero entender que ele fez para provocar o Palmeiras. Porque ele provocou a instituição. Poderia ter sido evitado. Mas não vou falar o que ele quis fazer porque é com ele, com Deus. Poderia ter sido evitado, sim", opinou o volante, antes de prosseguir de forma mais direta:

"Se acontecesse o contrário eu seria o primeiro a ir contra, mas agora ele abre o precedente para acontecer no futuro. Futebol é emoção. E isso ai gera ódio dos torcedores rivais. Imagina o Felipe melo pegando a bola e fazendo a mesma coisa. Imagina os torcedores e jogadores corintianos. ou e aconteceu, mas toda ação gera uma reação. Vamos esperar que não haja uma reação brusca".

O clássico com o Corinthians também incomodou Felipe Melo em outro aspecto. No começo da partida, Henrique acertou chute em Borja e não foi punido. O marcador acredita que faltou rigor da arbitragem e também da imprensa, que não explorou o lance como aconteceu, por exemplo, quando Jailson foi expulso no Dérbi da primeira fase do Paulistão.

"É bom frisar que quando acontece contra Palmeiras existe replay, câmera em cima de outra câmera... Quando o Jailson deu a entrada que pegou a bola antes e foi expulso, todo mundo viu, todo mundo falou. No último jogo Borja levou uma e não teve câmera, ninguém falou nada. Parabéns para eles que jogaram bem em casa, mas precisa ser igual para todo mundo. Para gente faltou a bola entrar", analisou.

Felipe aproveitou para amenizar as críticas sobre seus companheiros por suposta "falta de sangue" para encarar os clássicos com o Corinthians. O volante foi desfalque na segunda final e no Dérbi de domingo por estar suspenso.: "Eu ouço gente falando "ah, se o Felipe estivesse em campo teria dado uma voadora no fulano. É, mas ai seria suspenso dez jogos e esse mesmo ia falar que eu deixei o Palmeiras na mão. O Palmeiras poderia ter feito mais, mas mesmo assim jogou de igual para igual. É ruim perder clássico pela rivalidade que existe. A dor vai nos fazer trabalhar bastante para dar a volta por cima".