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

10 jogadores em fim de contrato na Europa que podem reforçar o seu clube

Fernandinho vai deixar o Manchester City ao fim da temporada para voltar ao Brasil - Getty Images
Fernandinho vai deixar o Manchester City ao fim da temporada para voltar ao Brasil Imagem: Getty Images

Marinho Saldanha

Do UOL, em Porto Alegre

27/05/2022 04h00

A temporada da Europa se encerra neste fim de semana com a disputa da final da Liga dos Campeões. Com isso, uma série de contratos se encerram e jogadores importantes podem ser contratados a um custo inferior do que seria caso estivessem com vínculo em vigor.

Pensando na próxima janela de transferências do futebol brasileiro, entre julho e agosto, a reportagem do UOL Esporte elencou 10 jogadores que ficam livres e podem fazer seu clube correr para concretizar alguma negociação.

Edinson Cavani

Edinson Cavani, do Manchester United, comemora gol marcado contra o Newcastle pelo Campeonato Inglês - Scott Heppell / Reuters - Scott Heppell / Reuters
Imagem: Scott Heppell / Reuters

Com 35 anos, o centroavante uruguaio já esteve nos planos do Grêmio, do Corinthians, do Botafogo, mas nunca chegou a concluir transferência para o Brasil. Será que agora vai? A nova oportunidade surge a partir do fim do contrato dele com o Manchester United. Entretanto, a tendência é que ele parta para o futebol espanhol.

Marcelo

Marcelo ostenta medalha de campeão da Supercopa da Espanha com o Real Madrid - AFP - AFP
Imagem: AFP

Multicampeão pelo Real Madrid, o lateral esquerdo de 34 anos pode deixar o clube ao fim do contrato. Alternativa para também jogar também no meio-campo, seria um reforço de peso para qualquer clube brasileiro. No país, ele só defendeu o Fluminense. Nos últimos dias, contudo, os merengues se movimentaram indicando chance de renovação.

Fernandinho

16.abr.2014 - Brasileiro Fernandinho vibra após abrir o placar para o Manchester City contra o Sunderland em jogo adiado do Campeonato Inglês - REUTERS/Darren Staples  - REUTERS/Darren Staples
Imagem: REUTERS/Darren Staples

O volante de 37 anos já se despediu do Manchester City após uma longa agem repleta de conquistas importantes. O futuro será decidido durante o período de férias, mas ele já adiantou que quer jogar no Brasil. Quem saiu na frente para fechar com ele foi o Athletico Paranaense, clube pelo qual despontou no futebol.

Arturo Vidal

Arturo Vidal, durante a partida entre Inter e Juventus, pela Copa Itália - DeFodi Images via Getty Images - DeFodi Images via Getty Images
Imagem: DeFodi Images via Getty Images

Será que chegou a chance do Flamengo? Arturo Vidal nunca escondeu o desejo de atuar pelo Rubro-Negro e agora chega ao fim seu vínculo com a Inter de Milão. Aos 35 anos, já ganhou o noticiário com a possível negociação com o clube carioca.

Ángel Di María

Se é para sonhar alto, quem sabe um ex-colega de Neymar no PSG? Ángel Di María, de 34 anos, não vai ficar no clube francês após o fim de seu contrato. Quem quiser se aventurar nessa investida terá que agir rápido e gastar muito. Segundo a imprensa italiana, o argentino já tem um acerto com a Juventus.

William

Formado na base do Inter, o lateral direito campeão olímpico com a seleção brasileira em 2016 anunciou saída do Wolfsburg, da Alemanha, ao fim do vínculo atual. A trajetória recente do atleta de 27 anos foi marcada por lesões e dificuldade de atuar em sequência.

Jemerson

Ex-jogador do Corinthians e do Atlético-MG, Jemerson está sem contrato desde a rescisão com o Metz, da França. Com 29 anos, já foi especulado como alvo de vários clubes brasileiros.

Juan Jesus

Também cria do Internacional, Juan Jesus tem vínculo se encerrando com o Napoli. O zagueiro de 30 anos, que também ou pela Roma, iniciou negociações para renovar vínculo e ficar na Itália, mas quem sabe uma proposta interessante não possa mudar isso.

Lucas Leiva

Lucas Leiva -  -

Formado no Grêmio, o volante ou muitos anos no Liverpool, da Inglaterra, e agora se despediu da Lazio. Com 35 anos, poderá abrir negociações para voltar ao futebol brasileiro, do qual saiu há quase 15 anos.

Marcelo (Lyon)

Você já deve, em algum momento, ter esbarrado na história do zagueiro com o qual o Lyon, da França, teria rescindido vínculo após ele soltar um pum no vestiário. Verdade ou mito, o personagem dessa história é Marcelo, de 35 anos, que está livre no mercado. Será que seu time estaria disposto a investir no flatulento?