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

Barcelona

Xavi se diz otimista e reforça confiança por classificação na Liga Europa

Adama Traoré recebe marcação de Koulibaly durante Barcelona x Napoli na Liga Europa 2021-22 - REUTERS/Albert Gea
Adama Traoré recebe marcação de Koulibaly durante Barcelona x Napoli na Liga Europa 2021-22 Imagem: REUTERS/Albert Gea

Esporte News Mundo ([email protected])

18/02/2022 08h00

O resultado em campo não foi o esperado e o empate por 1 a 1 diante do Napoli, no Camp Nou, vai forçar o Barcelona a ter que buscar uma vitória atuando na Itália para avançar às oitavas da Liga Europa. Apesar disso, o técnico Xavi Hernández se mostrou satisfeito com o rendimento de sua equipe e reforçou sua confiança em buscar a classificação longe da Espanha.

"Fiquei triste por não conseguir o resultado positivo, ainda mais porque perdemos boas chances de gol. Com certeza era um jogo para vencer. Lamento por isso, mas ainda temos uma luta na Itália. Nós estamos jogando bem e evoluindo a cada dia. Se continuarmos jogando desta maneira, vamos vencer mais jogos do que perder", afirmou Xavi.

Apesar de o Camp Nou não viver uma noite de Liga dos Campeões, como o torcedor se acostumou, a atmosfera dentro do estádio não se alterou. Mais uma vez a torcida incentivou o Barcelona até o final e isso também foi motivo de elogios por parte de Xavi Hernández. O treinador também conseguiu apostar em Ousmane Dembélé, que mudou a sua relação com a torcida.

"Há seis anos eu saí do Camp Nou e não esperava encontrar essa atmosfera por aqui agora. Foi extraordinário e excepcional. Ainda não tinha experimentado isso desde a minha volta. É uma ajuda que significa muito para a nossa equipe, nos deixa animados e nos faz querer coisas positivas. Sou muito grato ao torcedor", disse Xavi, também falando sobre Dembélé.

"As vaias viraram aplausos no final. Acabou. É isso. A notícia é que o Dembélé foi aplaudido pela torcida no final do jogo", concluiu Xavi sobre o jogador que foi bastante criticado pela torcida por não chegar a um acordo pela renovação do contrato.

O jogo da volta contra o Napoli acontece no próximo dia 24 de fevereiro, na Itália. Para avançar, o Barcelona precisará da vitória. Qualquer empate levará a disputa para a prorrogação e, persistindo o empate, disputa de pênaltis. Antes disso, no entanto, o Barcelona visita o Valencia, no domingo (20), pela LaLiga.

Barcelona