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

Vini Jr marca, e Real elimina Atlético de Madri após ataque racista

Rodrygo e Vinícius Jr. marcaram na vitória do Real Madrid sobre o Atlético - Florencia Tan Jun/Getty Images
Rodrygo e Vinícius Jr. marcaram na vitória do Real Madrid sobre o Atlético Imagem: Florencia Tan Jun/Getty Images

Do UOL, em São Paulo

26/01/2023 19h36

O Real Madrid venceu o Atlético de Madri por 3 a 1 na tarde de hoje e avançou na Copa do Rei.

  • Morata abriu o placar, Rodrygo entrou e empatou, e Benzema e Vini Jr. resolveram na prorrogação;
  • A vitória no Santiago Bernabéu classifica o Real às semifinais;
  • O clássico foi marcado pelo ataque racista sofrido por Vinícius Jr ontem.
  • O Real aguarda sorteio para saber se pega Barcelona, Athletic Bilbao ou Osasuna na semi.

O Atlético fez o gol cedo e recuou contra um adversário pouco criativo. No segundo tempo o Real Madrid cresceu, controlou e empatou para levar à prorrogação. No tempo extra, Benzema fez o segundo e Vini Jr. fechou o placar

Os times voltam a campo no domingo (29), pela liga espanhola. O Real Madrid recebe a Real Sociedad, enquanto o Atlético visita o Osasuna.

Apoio a Vini Jr.

O brasileiro teve seu nome gritado por torcedores do Real Madrid no minuto 20 do jogo, uma referência ao número que ele usa. Ele foi alvo de um ataque racista que manchou o clássico de hoje: um boneco vestido com a camisa de Vini Jr. foi pendurado pelo pescoço em uma ponte de Madri. A polícia investiga o caso.

Em campo, Vini Jr. foi quem mais tentou pelo Real, pois o ataque teve Valverde mal e Benzema apagado no tempo normal. O camisa 20 deu uma caneta na linha de fundo que deixou o zagueiro Savic sem entender nada. Com Rodrygo, o ataque merengue melhorou. Na prorrogação, fechou o placar e fez sua dancinha.

Gols e lances importantes

0 a 1. Koke achou o e dentro da área, Molina deu a assistência de primeira, e Morata apareceu em um buraco da zaga para abrir o placar para o Atlético de Madri.

Militão quase empata. Aos 31, o goleiro Oblak saiu mal do gol e furou a bola, que bateu na cabeça de Éder Militão e saiu. Foi um raro ataque de perigo do Real.

Bola a por Vini e Benzema. O Real girou a bola de um lado para outro até Nacho arriscar um chute cruzado. Por centímetros os dois atacantes não alcançaram dentro da pequena área.

Courtois salva. Griezmann cobrou uma falta da entrada da área com muita força, e o goleiro do Real Madrid evitou o segundo com ótima defesa.

1 a 1. Rodrygo empatou para o Real Madrid em uma jogada fantástica: ou por três e finalizou com categoria antes do quarto marcador chegar.

Savic fora. O zagueiro do Atlético tomou um amarelo por discutir com Vini Jr. e outro por carrinho em Camavinga. Foi expulso em dois minutos.

2 a 1. A bola cruzada por Asensio da direita ou por Rodrygo e Vini Jr, mas não por Benzema, que sacramentou a virada do Real.

3 a 1. Vinícius Jr. fechou o placar com golaço em jogada individual, quando o Atlético já estava praticamente entregue. Na comemoração, dançou.

Ficha técnica

Real Madrid 3 x 1 Atlético de Madri

Competição: Copa do Rei, quartas de final
Data e horário: 26 de janeiro de 2023, às 17 horas (de Brasília)
Local: Santiago Bernabéu, em Madri
Árbitro: Cesar Soto Grado
Cartões amarelos: Ceballos e Vinícius Jr. (Real Madrid); De Paul, Reinildo, Hermoso e Savic (Atlético)
Cartão vermelho: Savic (Atlético)

Gol: Morata aos 19 minutos do primeiro tempo. Rodrygo aos 34 minutos do segundo tempo. Benzema aos 13', e Vinícius Jr. aos 31 minutos da prorrogação.

Real Madrid: Courtois; Nacho (Odriozola), Militão, Rüdiger e Mendy (Ceballos); Camavinga, Toni Kroos (Asensio) e Modric; Valverde (Rodrygo, depois Mario Martín), Vinícius Jr. e Benzema. Técnico: Carlo Ancelotti.

Atlético: Oblak; Molina, Savic, Hermoso e Reinildo; De Paul (Kondogbia), Koke (Ñíguez), Ángel Correa (Depay), Lemar (Carrasco) e Griezmann (Pablo Barrios); Morata (Witsel). Técnico: Diego Simeone.