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

Barcelona anuncia saída de Lionel Messi

Do UOL, em São Paulo

05/08/2021 14h54

Lionel Messi não é mais jogador do Barcelona. Na tarde de hoje, o clube catalão anunciou a saída do atacante, que estava sem contrato desde o fim da última temporada. O craque argentino deixa o Camp Nou após quase 21 anos entre categorias de base e profissional.

Segundo o comunicado divulgado pelo Barça, o argentino havia chegado a um acordo para um novo contrato, mas o vínculo não pôde ser assinado devido "a obstáculos econômicos e estruturais". O clube espanhol vinha buscando reduzir a folha salarial para não ultraar o fair play financeiro imposto pela LaLiga e, assim, conseguir formalizar a permanência de Messi. Entenda a situação.

Antes do início da temporada 2020-21, Messi chegou a ficar perto de uma saída do Barcelona. Na ocasião, o argentino pretendia deixar o clube por insatisfação com a diretoria, mas optou por cumprir o contrato para evitar uma briga judicial.

A história de Messi no Barcelona teve início em setembro de 2000, quando ele chegou ao clube com apenas 13 anos após ser descoberto nas categorias de base do Newell's Old Boys. O jogador ou por todos os estágios no Camp Nou até fazer a sua estreia no time principal com 17 anos, em 2004. O primeiro jogo do futuro craque e ídolo do Barça foi ao lado de Ronaldinho Gaúcho.

Messi, aos 34 anos, deixa o Barcelona como maior jogador da história do clube. Foram 672 gols em 778 jogos. Entre as principais conquistas estão os quatro títulos da Liga dos Campeões e 10 troféus do Campeonato Espanhol.

Agora, a expectativa gira em torno do novo clube de Messi. O Manchester City de Pep Guardiola e o PSG de Neymar foram apontados anteriormente como possíveis destinos para o craque.

Clube esperava 'final feliz' nesta quinta

Antes do desfecho, o Barcelona se mostrava otimista pela permanência de Lionel Messi. Segundo a imprensa catalã, a renovação era esperada nesta quinta-feira depois de reunião entre o jogador, seu pai e agente (Jorge Messi) e Joan Laporta, presidente do clube catalão. Havia, inclusive, a expectativa de que o craque estivesse em campo no amistoso contra a Juventus, válido pelo Troféu Joan Gamper, no domingo.

Por outro lado, o jornal Marca, de Madri, informava justamente o contrário. A publicação da capital espanhola dizia que a negociação estava "longe de acabar".

Messi havia voltado a Barcelona na tarde da última quarta-feira após período de férias em Miami e Ibiza depois da conquista da Copa América com a seleção argentina. Apesar disso, desde o último dia 30 de junho, o jogador já não possuía vínculo com o Barça.

Veja o comunicado do Barcelona na íntegra:

Apesar de ter chegado a um acordo entre o FC Barcelona e Leo Messi e com a clara intenção de ambas as partes de em hoje um novo contrato, este não pode ser formalizado devido a obstáculos econômicos e estruturais (regulamento espanhol da LaLiga).

Diante desta situação, Lionel Messi não continuará vinculado ao FC Barcelona. Ambas as partes lamentam profundamente que os desejos do jogador e do clube não possam ser finalmente atendidos.

O Barça agradece de todo o coração ao jogador a sua contribuição para a valorização da instituição e deseja-lhe o melhor na sua vida pessoal e profissional.

Barcelona