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

Champions; Grêmio x Santos; Inter; SPFC; os jogos de quarta e onde assistir

Jogadores do Santos comemoram gol de Marinho em jogo contra o Palmeiras, no Brasileirão - Fernanda Luz/AGIF
Jogadores do Santos comemoram gol de Marinho em jogo contra o Palmeiras, no Brasileirão Imagem: Fernanda Luz/AGIF

Do UOL, em São Paulo

09/12/2020 04h00

Os jogos de futebol desta quarta-feira (9) se iniciam à tarde com os confrontos finais da fase de grupos da Liga dos Campeões. Destaque para os confrontos Ajax x Atalanta, Midtjylland x Liverpool, Bayern de Munique x Lokomotiv Moscou, Red Bull Salzburg x Atlético de Madri, Inter de Milão x Shakhtar Donetsk, Real Madrid x Borussia M'gladbach e Manchester City x Olympique de Marselha. Além destes duelos, ocorrerá o jogo PSG x Instanbul Basaksehir, que foi paralisado e adiado por conta de suposto ato racista do quarto árbitro Sebastien Coltescu.

Na Copa Sul-Americana, Bahia e Defensa y Justicia jogam pelas quartas de final. Na Libertadores, Boca Juniors e Internacional se enfrentam valendo vaga nas quartas. Grêmio e Santos medem as forças no embate brasileiro que vale a classificação às semifinais. No Campeonato Brasileiro, São Paulo e Botafogo jogam em partida atrasada pela 18ª rodada.

Nosso blogueiro Rafael Reis recomenda assistir à partida entre Real Madrid e Borussia Mönchengladbach

O Real esteve em todas as oitavas de final da Champions neste século. Mas essa incrível sequência pode terminar hoje. Se perderem para o Mönchengladbach, os espanhóis já eram. E só uma vitória assegura a classificação sem depender do resultado de Inter x Shakhtar

Abaixo, o UOL Esporte lista as partidas mais importantes do dia e informa onde serão transmitidas. A ordem é cronológica e os horários são de Brasília.

14h55 - Ajax x Atalanta

Liga dos Campeões
Estádio Johan Criuyff
Onde assistir: TNT, Facebook EI e EI Plus
Na última partida, o Ajax perdeu para o Liverpool e o jogo com os italianos decide quem segue na competição.

14h55 - Midtjylland x Liverpool

Liga dos Campeões
MCH Arena
Onde assistir: Space e EI Plus
Na liderança, o Liverpool busca a vitória para se manter no topo.

14h55 - PSG x Instanbul Basaksehir

Liga dos Campeões
Estádio Parc des Princes
Onde assistir: EI Plus e Facebook
O confronto vale a liderança do Grupo H. O Paris Saint-Germain, já classificado por conta da vitória do RB Leipzig diante do Manchester United, precisa da vitória para fechar na ponta da chave
Saiba mais sobre o jogo: PSG apoiou adiamento do jogo por caso de racismo e viu Istanbul se dividir

17h - Red Bull Salzburg x Atlético de Madri

Liga dos Campeões
Red Bull Arena
Onde assistir: Facebook EI e EI Plus
O Atlético precisa de um empate para seguir na competição, enquanto o Red Bull luta por uma vitória.

17h - Real Madrid x Borussia M'Gladbach

Liga dos Campeões
Estádio Alfredo Di Stéfano
Onde assistir: Facebook EI e EI Plus
O Real precisa de uma vitória para seguir para as oitavas.

17h - Manchester City x Olympique de Marselha

Liga dos Campeões
Etihad Stadium
Onde assistir: Space e EI Plus
Já classificado, o Manchester City joga para manter a invencibilidade. O Olympique não segue na Champions, mas briga pela vaga na Liga Europa.

17h - Internazionale x Shakhtar Donetsk

Liga dos Campeões
Estádio San Siro
Onde assistir: TNT e EI Plus
A situação no Grupo B é difícil, mas para lutar pela classificação a Inter precisa vencer e torcer por tropeço do Real Madrid.

17h - Bayern de Munique x Lokomotiv Moscou

Liga dos Campeões
Allianz Arena
Onde assistir: EI Plus
Já classificado, o Bayern não terá problemas nessa última rodada. O Lokomotiv briga por uma vaga na Liga Europa.

19h15 - Grêmio x Santos

Copa Libertadores
Arena Grêmio
Onde assistir: Fox Sports
Os dois times buscam uma vitória na primeira partida das quartas de final para chegarem com vantagem na partida de volta.
Saiba mais sobre o jogo: Xadrez de Cuca x Renato: o que um lado espera do outro em Grêmio e Santos

19h15 - Bahia x Defensa y Justicia

Copa Sul-Americana
Arena Fonte Nova
Onde assistir: Conmebol TV
Após vencer o Unión Santa Fe, o Bahia enfrenta o Defensa nas quartas de final da competição.

21h30 - Boca Juniors x Internacional

Copa Libertadores
La Bombonera
Onde assistir: Conmebol TV
O placar de 1 a 0 fora de casa, da vantagem ao Boca. O Inter precisa reverter o placar para conseguir a classificação às quartas de final.
Saiba mais sobre o jogo: Ídolo dos dois lados, Iarley dá receita para Inter eliminar o Boca Juniors

21h30 - São Paulo x Botafogo

Campeonato Brasileiro
Estádio Morumbi
Onde assistir: TV Globo
Isolado na liderança, o São Paulo busca uma vitória para disparar. O Botafogo, por sua vez, é o vice-lanterna e precisa de uma vitória para tentar sobreviver.
Saiba mais sobre o jogo: Contra o Botafogo, São Paulo joga pelo título do 1º turno do Brasileiro