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

Selfie, dancinha e chororô: confira as novas comemorações de FIFA 21

Os craques do Real Madrid na comemoração de Selfie em FIFA 21 - Reprodução/EA Sports
Os craques do Real Madrid na comemoração de Selfie em FIFA 21 Imagem: Reprodução/EA Sports

Tiago Alcantara

Colaboração para o START

29/09/2020 04h00

É aquela coisa: ninguém gosta de tomar gol. Mas, na hora de comemorar aquele gol de placa, será que existem limites? Como já virou tradição na franquia, a EA publicou um trailer revelando as novas comemorações de FIFA 21.

A franquia apostou em celebrações que lembram momentos épicos e também que podem ser usadas para tirar aquele sarro —com toda moderação e fair play— dos adversários.

Confira no trailer todas as novas comemorações no tutorial da EA Sports.

Curiosamente, nesta edição, não será possível pedir silêncio da torcida alheia, pois o gesto pode ser considerado um comportamento tóxico.

Enquanto você vai aprendendo os comandos para cada comemoração, vamos relembrar a origem de algumas das mais marcantes.

Chororô

via GIPHY

Esta lidera a lista de comemorações que deixa os fifeiros de cabeça quente nas partidas online. Os torcedores um pouco mais velhos do Palmeiras devem se lembrar da celebração feita pelo meia Jorge Valdivia contra o Corinthians. Mais recentemente, ela foi usada também pelo atacante Gabriel Barbosa, do Flamengo, em um clássico contra o Botafogo.

Não acredito

Mais do que uma celebração, esse gesto de desabar depois de marcar um gol se repete em uma série de jogos decisivos. Talvez uma das mais conhecidas comemorações nesse estilo seja a do brasileiro Juliano Belletti, que fez o gol do tíitulo em uma final de Champions League pelo Barcelona.

Meditação Paz e Amor

via GIPHY

Outra celebração que promete causar polêmicas em FIFA 21 é a meditação. A celebração é inspirada no atacante Erling Haaland, do Borussia Dortmund. Acontece que o jovem artilheiro celebrou assim um de seus gols em cima do Paris Saint-Germain durante o jogo de ida das oitavas da Champions League. No jogo de volta, em Paris, veio o troco: Neymar liderou o PSG para a classificação e celebrou da mesma forma.

Deslizar de joelhos

via GIPHY

Outro clássico das comemorações, o velho e bom deslizar de joelhos nunca sai de moda. Craques de diversas épocas já comemoraram assim. No exemplo, temos Cristiano Ronaldo, ainda em seus tempos no Manchester United para mostrar o movimento. Na versão de FIFA 21, a comemoração ganhou um leve giro, dando um pouco mais de estilo ao movimento.

Dancinha em grupo

A celebração em grupo de FIFA 21 se parece muito com a forma como o sul-africano Lawrence Tshabalala foi para a galera depois de marcar sobre o México. O gol era o primeiro da seleção dona da casa na Copa do Mundo de 2010. Alguém aí se lembra do time treinado por Carlos Alberto Parreira?

Selfie

Se Valdivia já marcou gol e saiu fazendo chororô em cima do Corinthians, o paraguaio Romero descontou. Em um dérbi contra o Palmeiras, o atacante do Timão marcou e foi para a galera tirar uma selfie.

Relax

Os mais novos provavelmente não devem se lembrar, mas essa comemoração deixou alguns brasileiros de cabeça quente. Na Copa do Mundo da França, em 1998, o dinamarquês Brian Laudrup marcou contra o Brasil e comemorou dessa forma. Sorte que o time nacional tinha um Rivaldo inspirado e virou a partida.

SIGA O START NAS REDES SOCIAIS

Twitter: https://twitter.com/start_uol
Instagram: https://www.instagram.com/start_uol/
Facebook: https://www.facebook.com/startuol/
TikTok: http://vm.tiktok.com/Rqwe2g/
Twitch: https://www.twitch.tv/start_uol