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

Corinthians

Sul-Americana: sem inspiração, Corinthians empata com River-PAR na estreia

Luan disputa bola no jogo do Corinthians contra o River Plate-PAR, pela Sul-Americana - Rodrigo Coca/Agência Corinthians
Luan disputa bola no jogo do Corinthians contra o River Plate-PAR, pela Sul-Americana Imagem: Rodrigo Coca/Agência Corinthians

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

22/04/2021 23h24

Em noite pouco inspirada, o Corinthians empatou sem gols com o River Plate, do Paraguai, pela estreia na Copa Sul-Americana, em partida realizada no Defensores del Chaco, em Assunção. O Timão dominou a posse de bola, mas não conseguiu furar o bloqueio adversário e criar boas oportunidades. Já o River, lanterna do Campeonato Paraguaio e de técnico novo, chegou a acertar o travessão de Cássio no segundo tempo.

No outro jogo do Grupo E, o Peñarol venceu o Sport Huancayo. Com isso, o time uruguaio lidera a chave, com três pontos, enquanto Corinthians e River somaram um ponto cada com o empate desta noite.

O Corinthians volta a jogar pela Sul-Americana na próxima quinta-feira, contra o Peñarol, do Uruguai, na Neo Química Arena. Antes, porém, o Timão entra em campo pelo Campeonato Paulista, no domingo, no clássico diante do Santos, na Vila Belmiro.

Posse de bola improdutiva

O Corinthians teve mais de 75% de posse de bola no primeiro tempo, mas quase não levou perigo ao gol de Daniel Azcona. Sem criatividade, o Timão sofria para furar o bloqueio do River Plate, que se fechava bem na sua intermediária e deixava apenas Pérez mais avançado. O cenário foi parecido na etapa final, com o Corinthians trocando es sem conseguir criar boas oportunidades.

Cássio dá susto no aquecimento e tem pouco trabalho

Ainda no aquecimento no gramado, Cássio se queixou de dores na mão esquerda após fazer uma defesa, tirou a luva e voltou ao vestiário, mas ficou à disposição. Durante a partida, o goleiro praticamente não teve trabalho. O River atacava pouco e assustou em dois chutes de fora da área. O de Sosa, já no segundo tempo, explodiu no travessão.

Luan tenta se consolidar como titular

Após quatro jogos sem ser utilizado pelo técnico Vagner Mancini, Luan agora acumula quatro partidas seguidas. Ele foi novamente titular e teve duas boas chances, uma em cada etapa. Logo no começo da partida, recebeu cruzamento rasteiro de Léo Natel, mas se atrapalhou na ada e não conseguiu finalizar para o gol. No segundo tempo, em jogada parecida, recebeu cruzamento rasteiro de Gustavo Mosquito e chutou para fora. Luan ficou em campo até os 41 minutos da etapa final, quando foi substituído por Vitinho.

Mancini demora para mexer

Apesar da improdutividade corintiana, Vagner Mancini só mexeu no sistema ofensivo aos 31 minutos do segundo tempo, com Gustavo Mosquito e Cauê nas vagas de Otero e Jô. Na volta do intervalo, o treinador já havia colocado Cantillo no lugar de Xavier, mas a substituição no meio de campo não mudou a postura da equipe. As trocas no ataque deram novo gás. Mosquito foi mais efetivo pelo lado direito do que Léo Natel e, já nos acréscimos, Vitinho exigiu boa de defesa de Azcona, que garantiu o empate.

RIVER PLATE-PAR X CORINTHIANS

Data e hora: 22/4/2021, às 21h30 (horário de Brasília)
Local: Defensores del Chaco, em Assunção (PAR)
Árbitro: Dario Herrera (ARG)
Auxiliares: Julio Fernandes (ARG) e Facundo Rodriguez (ARG)
VAR: Amelio Andino (PAR)
Cartões amarelos: Rodrigo Vera, Marcelo González, Osmar Molinas (River Plate); Cantillo, Fábio Santos (Corinthians)

RIVER PLATE: Daniel Azcona; Mario Saldívar, Gustavo Navarro, Gustavo Giménez e Carlos Montiel; Marcelo González, Rodrigo Vera (Cristian Sosa), Osmar Molinas e Aldo Quiñónez; Dionisio Pérez (Zeballos) e Mario Otazú (Diego Godoy). Técnico: Celso Ayala.

CORINTHIANS: Cássio; Fagner, Bruno Méndez, Gil e Fábio Santos; Xavier (Cantillo) e Camacho; Luan (Vitinho), Otero (Gustavo Mosquito) e Léo Natel (Gabriel Pereira); Jô (Cauê). Técnico: Vagner Mancini.

Corinthians