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

FIFA 20: 7 brasileiros desconhecidos que estão com tudo no Ultimate Team

Wesley: aos 22 anos de idade, atacante do Aston Villa tem pontuação 88 - Reprodução
Wesley: aos 22 anos de idade, atacante do Aston Villa tem pontuação 88 Imagem: Reprodução

Tiago Alcântara

Colaboração para o START

14/12/2019 04h00

Não é de hoje que o futebol brasileiro não vive seus melhores dias. Apesar do título da seleção na Copa América, a pressão sobre Tite aumenta a cada atuação fraca do time canarinho.

Talvez seja a hora do "professor" tentar algo novo, como uma partida no FIFA 20. Para dar aquela força para a seleção brasileira, o time do START listou alguns dos brasileiros que não estão lá muito prestigiados pelo técnico brasileiro, mas que já foram escolhidos para os times da semana do modo Ultimate Team do game.

Pablo (Bordeaux - França)

Pablo Bordeaux - FRANCOIS NASCIMBENI/AFP - FRANCOIS NASCIMBENI/AFP
Imagem: FRANCOIS NASCIMBENI/AFP

Nos últimos tempos, a zaga brasileira tem sido um dos setores mais sólidos do time. No entanto, fica o questionamento se Thiago Silva e Marquinhos devem manter o bom nível nos próximos anos. Uma opção que vem dos gramados ses é o zagueiro Pablo, do Bordeaux, da França. Escolhido como suplente do time da semana 11 do modo Ultimate Team, o defensor ganhou um card com 81 pontos.

Anderson Talisca (Guangzhou Evergrande Taobao - China)

Anderson Talisca - STR/AFP - STR/AFP
Imagem: STR/AFP

Outro escolhido para o time da semana 11 no simulador da EA Sports é o atacante Anderson Talisca, do Guangzhou Evergrande Taobao (China). Com agens pelo futebol português e turco, o centroavante de 25 anos deve ter poucas chances com Tite. Mas fica aí a dica para quem anda precisando marcar.

Alex Telles (Porto - Portugal)

Alex Telles Porto - Miguel Riopa/AFP - Miguel Riopa/AFP
Imagem: Miguel Riopa/AFP

Lateral esquerdo de um dos principais times de Portugal, Alex Telles chama a atenção dos fifeiros há várias edições do simulador de futebol. Em FIFA 20 não foi diferente, o defensor foi escolhido para o time da semana número 9 do game. Será que vale a pena pensar nele como uma sombra para Alex Sandro e Filipe Luís?

João Pedro (Cagliari - Itália)

João Pedro Cagliari - Augusto Casasoli - Augusto Casasoli
Imagem: Augusto Casasoli

Atacante de 27 anos, João Pedro foi revelado pelo Atlético Mineiro e tem agens por Santos e Penarol, do Uruguai. O atacante se destacou no campeonato italiano e ganhou um card especial com 81 pontos de média e foi escolhido para a semana 8 do modo Ultimate Team.

Gabriel (Lecce - Itália)

Gabriel Lecce - Ciro De Luca/Reuters - Ciro De Luca/Reuters
Imagem: Ciro De Luca/Reuters

O goleiro Gabriel é um dos destaques do mediano Lecce, que disputa a primeira divisão do campeonato italiano. O brasileiro ganhou destaque no time da semana 7 de FIFA 20, mas tem poucas chances de figurar em uma convocação para a seleção - seu card tem 81 pontos. Mas, quem sabe não seja uma boa para times brasileiros em busca de um paredão, não é mesmo?

Willian José (Real Sociedad - Espanha)

Fifa Willian José - GABRIEL BOUYS / AFP - GABRIEL BOUYS / AFP
Imagem: GABRIEL BOUYS / AFP

Escolhido para a seleção do modo FUT na semana de número 2, o atacante Willian José ganhou um card especial em FIFA 20 com 84 pontos. Se o ataque do time de Tite já não é mais tão inquestionável, será que vale a pena testar o atacante do Real Sociedad? Brilhando nos gramados espanhóis, o atleta até foi convocado para amistosos em 2018, mas nunca teve muita chance entre os titulares da seleção.

Wesley (Aston Villa - Inglaterra)

Wesley Aston Villa - Action Images via Reuters/Matthew Childs  - Action Images via Reuters/Matthew Childs
Imagem: Action Images via Reuters/Matthew Childs

Outro atacante que vem chamando a atenção nos videogames é Wesley, do inglês Aston Villa. Com apenas 22 anos de idade, um card com seus respeitosos 82 pontos e disputando uma das ligas mais acirradas do continente europeu, o jogador é uma promessa que vale a pena ser mantida no radar para futuras convocações.