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

Chelsea

Dínamo Zagreb surpreende e vence o Chelsea em estreia da Champions

 Stefan Ristovski comemora vitória do Dínamo Zagreb sobre o Chelsea pela Liga dos Campeões - Slavko Midzor/Pixsell/MB Media/Getty Images
Stefan Ristovski comemora vitória do Dínamo Zagreb sobre o Chelsea pela Liga dos Campeões Imagem: Slavko Midzor/Pixsell/MB Media/Getty Images

06/09/2022 15h42

O Dínamo Zagreb surpreendeu e derrotou o Chelsea por 1 a 0, hoje, pela primeira rodada do Grupo E da Liga dos Campeões.

Com gol de Orsic na primeira etapa, a equipe mandante conseguiu ser mais perigosa ao longo do jogo, mesmo sem construir um placar ainda mais elástico. Os ingleses, por outro lado, pressionaram no fim do jogo, mas pararam na trave e em Livakovic.

O resultado colocou o Dínamo na liderança do Grupo E, com três pontos somados. Já o Chelsea — bicampeão do torneio europeu — amarga a lanterna.

A chave ainda conta com Milan e Red Bull Salzburg, que empataram em 1 a 1, hoje, na Red Bull Arena, na Alemanha.

Na próxima rodada da Champions, o Chelsea encara o Salzburg no Stanford Bridge e o Dínamo Zagreb vai à Itália enfrentar o Milan no San Siro. Os jogos serão na próxima quarta-feira, dia 14.

Surpresa

Apesar da posse de bola, o Dínamo Zagreb conseguiu ser mais objetivo. Aos 12 minutos, Orsic arrancou com a bola antes do meio de campo, ficou cara a cara com Kepa e tocou na saída do goleiro para abrir o placar. Aos 29, os croatas tiveram outra oportunidade com Ademi recebendo e na entrada da área e batendo para grande defesa do espanhol.

Mais um susto

No início da segunda etapa, o Chelsea empatou com Aubameyang, mas o gol foi anulado com o auxílio do VAR e da nova tecnologia do impedimento semiautomático, que flagrou Chilwell em posição irregular. O Dínamo Zagreb respondeu com Ristovski recebendo e de fora da área e soltando uma bomba para defesa de Kepa antes da bola pegar no travessão.

Pressão insana

Aos 39 minutos da segunda etapa, o Chelsea quase chegou ao empate após Reece James receber uma bola pelo lado direito da área, cortou o defensor e finalizou na trave. No ataque seguinte, Mount recebeu uma bola cruzada na área e finalizou de primeira para grande defesa de Livakovic.

Chelsea