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

Yago Felipe faz dois, Flu bate Palmeiras de virada e fica mais perto do G6

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

14/11/2021 20h14

O Fluminense encerrou a série invicta do Palmeiras de seis jogos ao vencer, de virada, por 2 a 1, na noite de hoje (14), no Maracanã, pela 32ª rodada do Brasileirão. Os gols foram anotados por Yago Felipe, duas vezes, e Dudu.

Com a vitória, o Tricolor carioca chegou a 45 pontos e vai ao oitavo lugar, com quatro pontos a menos que o Fortaleza, o sexto colocado. A equipe de Abel Ferreira permanece na terceira posição, com 58, já que o Flamengo goleou o São Paulo e assumiu a vice-liderança nesse domingo.

Pela 33ª rodada, na quarta-feira (17), às 20h30 (horário de Brasília), o Verdão terá o Choque-Rei contra o São Paulo, no Allianz Parque. No mesmo horário, o Flu visita o Juventude no Alfredo Jaconi.

Quem foi bem: Yago Felipe

Yago Felipe foi o grande nome da partida no Maracanã. Além de participar ativamente da distribuição do jogo pelo meio, o volante do Flu fez os dois gols da vitória do Tricolor sobre o Verdão. Primeiro, contou com o desvio de Luan para empatar a partida. No fim, aos 43 do segundo tempo, recebeu pela intermediária e chutou colocado, no canto, para virar o jogo.

Quem foi mal: Caio Paulista

O atacante Caio Paulista foi um dos piores nomes entre as duas equipes. O camisa 70 teve boas oportunidades em avanços do Flu, mas tomou decisões erradas em todas elas: chutou quando a marcação estava pronta para bloquear, tentou o drible quando poderia ar, e atrapalhou o sistema ofensivo carioca. Caio acabou substituído no intervalo.

Palmeiras começa melhor, mas é superado no segundo tempo

A partida na capital fluminense começou com as duas equipes se estudando, e o Palmeiras se impondo aos poucos. Os visitantes primeiro assustaram aos 16, em chute de Raphael Veiga, espalmado por Marcos Felipe; no rebote, o goleiro defendeu de novo o chute de Rony. Porém, 11 minutos depois, Dudu abriu o placar com um golaço. Se na etapa inicial o Verdão foi melhor, no segundo tempo sofreu na saída de bola com a forte marcação do Flu, e não levou perigo à meta de Marcos Felipe.

Após primeiro tempo apático, Flu reage na etapa final

Enquanto o Verdão começava a dar as cartas fora de casa, o Tricolor foi apático no primeiro tempo, dando espaços aos atacantes adversários, perdendo a maioria dos duelos e divididas no meio-campo e pouco criando na frente. Porém, a reação veio na etapa final. Logo aos 23 segundos, Yago Felipe finalizou de fora da área e bola desviou nas costas de Luan, 'matando' o goleiro Weverton. Com uma postura mais agressiva no ataque e também na marcação, o time de Marcão foi superior nos últimos 45 minutos, e conquistou a virada, novamente com o Yago, no fim da partida.

Cronologia do jogo

O jogo começou estudado no Maracanã, com poucas oportunidades de gol. Aos 27, Dudu abriu o placar após acertar um belo chute da intermediária. Aos 23 segundos da etapa final, o Fluminense empatou com Yago Felipe, que marcou mais uma vez aos 43 minutos e virou o jogo.

Cria de Xerém, Scarpa é vaiado no Maracanã

A torcida do Fluminense parece ainda não ter superado a saída conturbada de Gustavo Scarpa do clube, em 2018, quando foi à Justiça para deixar o clube e rumar ao Palmeiras. Entre vaias e ofensas ao meia durante toda a partida, a torcida tricolor não perdoou o camisa 14 palmeirense, que teve atuação apagada no Maracanã.

Felipe Melo e Dudu fora do Choque-Rei

No início da segunda etapa, após a marcação de pênalti para o Fluminense - anulado depois de revisão no VAR -, Felipe Melo chutou a bola da marca da cal em forma de protesto, e levou o cartão amarelo. Pendurado, o experiente volante está suspenso e não pegará o São Paulo na quarta-feira (17). Dudu, expulso no fim do jogo, também ficará fora.

FICHA TÉCNICA:

FLUMINENSE 2 x 1 PALMEIRAS
Competição: 32ª rodada do Campeonato Brasileiro
Data e horário: 14/11/2021 (domingo), às 18h15 (de Brasília)
Local: Maracanã, no Rio de Janeiro (RJ)
Árbitro: Caio Max Augusto Vieira (RN)
Assistentes: Jean Marcio dos Santos (RN) e Lorival Candido das Flores (RN)
Cartões amarelos: Fred (Fluminense), Yago Felipe (Fluminense) e Gabriel Teixeira (Fluminense); Victor Luis (Palmeiras), Dudu (Palmeiras), Felipe Melo (Palmeiras), Luan (Palmeiras), Weverton (Palmeiras) e Deyverson (Palmeiras)
Cartões vermelhos: Fred (Fluminense); Dudu (Palmeiras)
Gols: Dudu (Palmeiras), aos 27' do 1º tempo. Yago Felipe (Fluminense), ao 1º minuto e aos 43' do 2º tempo
FLUMINENSE: Marcos Felipe, Samuel Xavier, David Braz, Luccas Claro e Marlon; Wellington (Nonato), Martinelli (Cazares), Yago; Arias (Lucca), Caio Paulista (Gabriel Teixeira) e Fred (John Kennedy). Técnico: Marcão

PALMEIRAS: Weverton; Mayke (Gabriel Menino), Luan, Kuscevic e Victor Luis; Felipe Melo (Danilo Barbosa), Zé Rafael (Danilo), Gustavo Scarpa (Gabriel Veron) e Raphael Veiga (Breno Lopes); Dudu e Rony. Técnico: Abel Ferreira