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

Campeonatos

La Liga


Barça empata com o Real em clássico atrasado e segue líder do Espanhol

Lionel Messi e Toni Kroos, durante partida entre Barcelona e Real Madrid - REUTERS/Albert Gea
Lionel Messi e Toni Kroos, durante partida entre Barcelona e Real Madrid Imagem: REUTERS/Albert Gea

Do UOL, em São Paulo

18/12/2019 17h53

Barcelona e Real Madrid não saíram do 0 a 0, hoje, em clássico disputado no Camp Nou. A partida, válida pela 10ª rodada do Campeonato Espanhol, só foi realizada quase dois meses após a data inicialmente prevista, em 26 de outubro, quando o duelo acabou anulado após protestos e confrontos violentos em Barcelona contra a prisão de dirigentes separatistas da Catalunha.

O resultado no Camp Nou não é o ideal para nenhum dos dois times, mas mantém o Barça na liderança do Espanhol. Os dois rivais somam 36 pontos, mas o clube catalão leva a vantagem no saldo de gols.

Após o empate de hoje, Barça e Real voltam a jogar no próximo fim de semana pelo Campeonato Espanhol. No sábado, os catalães recebem o Alavés. Já no domingo, os merengues jogam em casa contra o Athletic Bilbao.

O jogo

Real e Barça fizeram um primeiro tempo com chances para os dois lados. Em uma das melhores chegadas dos visitantes, Piqué tirou em cima da linha após cabeceio de Casemiro, aos 16 minutos. O brasileiro ainda arriscou chute de longe, defendido por Ter Stegen.

Depois de pressão do Real, o Barça reagiu na reta final da primeira etapa. Aos 30, Courtois saiu do gol para cortar cruzamento de Alba. Messi aproveitou a sobra e bateu de primeira, mas Sergio Ramos salvou debaixo do gol.

O segundo tempo começou mais devagar. Após chegadas tímidas ao ataque, o Barça teve boa chance aos 14 minutos. Griezmann recebeu na área e rolou para Messi, que furou e não acertou o chute em cheio. Na sobra, Sergio Ramos travou Suárez.

A resposta do Real veio aos 22 minutos. Valverde puxou contra-ataque e rolou para Bale. O galês encheu o pé, mas a bola foi na rede pelo lado de fora.

Os visitantes chegaram a marcar justamente com Bale aos 26, mas Mendy estava impedido no início da jogada, e a arbitragem anulou o gol.

O brasileiro Rodrygo fez sua estreia no clássico ao entrar no lugar de Isco aos 34 minutos, mas pouco apareceu. Vinicius Junior não saiu do banco de reservas.

Clássico tem manifestação tímida

A expectativa antes do jogo era até de um possível atraso ou incidentes por conta das manifestações de separatistas catalães. Porém, durante os 90 minutos, o duelo só foi paralisado por cerca de dois minutos na etapa final.

Torcedores do Barça atiraram bexigas amarelas no gramado e ergueram faixas azuis, pedindo 'Espanha, sente e converse', slogan chamando para um diálogo entre o governo de Madri e as autoridades regionais da Catalunha.