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

André Rocha

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Dupla Vidal-Victor Hugo aponta o caminho para Flamengo no Brasileiro

Victor Hugo, do Flamengo, disputa lance com Gabriel Baralhas, do Atlético-GO pelo Brasileirão -  Thiago Ribeiro/AGIF
Victor Hugo, do Flamengo, disputa lance com Gabriel Baralhas, do Atlético-GO pelo Brasileirão Imagem: Thiago Ribeiro/AGIF

Colunista do UOL Esporte

31/07/2022 08h51

Um tem 35 anos e muita rodagem internacional, o outro apenas 18 e vivendo suas primeiras experiências no futebol profissional. Mas a sintonia fina entre o veterano e o garoto promissor foi o que facilitou e proporcionou momentos de espetáculo nos 4 a 1 do Flamengo sobre o Atlético-GO no Maracanã cheio outra vez.

Vidal comandou saída de bola qualificada e intensa pressão pós-perda, empurrando Victor Hugo para circular por todos os setores do ataque e ser o meia que cria e finaliza. Os dez reservas de Dorival Júnior atropelaram um adversário que entrou com titulares por necessidade de recuperação no Brasileiro e se desmontou depois da arrancada de Victor Hugo pela direita que terminou na assistência para Lázaro, o atacante móvel do 4-3-3 rubro-negro que abriu o placar.

Marinho completou a trinca de protagonistas no ataque, partindo da direita para dentro com a vontade costumejra, marcando gol e sofrendo o pênalti que Vidal converteu e se inebriou na comemoração com a torcida que tanto o encantou e certamente foi um dos elementos para uma das maiores "cavadas" de um jogador para atuar por um clube nos últimos tempos.

Mas Victor Hugo ressurgiu para mostrar com golaço de categoria quem foi o melhor em campo nos 45 minutos avassaladores que definiram a vitória que confirmou os 100% de aproveitamento nos quatro jogos mais íveis na virada para o returno. Sequência que pode deixar o Flamengo no G-4, algo que parecia impossível na transição do desastre Paulo Sousa para o "bombeiro" Dorival.

Sinaliza o futuro próximo também, nas semanas decisivas de Libertadores contra o Corinthians e na volta da Copa do Brasil diante do Athletico. Com Varella e Pulgar, os novos contratados para a lateral direita e meio-campo, o time "alternativo" do Brasileiro pode ser ainda mais competitivo, mesmo encarando São Paulo e Palmeiras fora de casa e um Athletico provavelmente também com reservas, a três dias de decidir a vida no mata-mata nacional.

Nitidamente melhor preparado fisicamente e com a proposta de jogo assimilada, mesmo com variações táticas, o Flamengo vai resgatando a qualidade que parecia embotada ou até esquecida. E os reservas apontam o caminho para os titulares: objetividade e precisão para transformar o domínio em gols e poder istrar a vitória e o fôlego no segundo tempo.

Apesar dos incríveis gols perdidos por Lazaro, um em cada tempo, e de um Everton Cebolinha ainda se adaptando aos companheiros e à função de abrir o campo pela esquerda.

Mas com Vidal ditando o ritmo e Victor Hugo voando e decidindo. Ambos podendo contribuir também, se necessário, nas copas. Na recuperação de um Flamengo que parecia com a temporada perdida e agora vê luz na frente, já piscando no retrovisor dos concorrentes. Talvez não seja possível ultraá-los, mas fazer uma corrida digna, que faça o torcedor sair em êxtase do Maracanã.

Como na noite de sábado em que o algoz do Corinthians na quarta-feira foi para casa nocauteado.

Errata: este conteúdo foi atualizado
Diferentemente do que foi informado, a partida entre Alético-Go e Corinthians foi na última quarta-feira (27). O erro já foi corrigido.

** Este texto não reflete, necessariamente, a opinião do UOL