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

Entenda por que a seleção do País de Gales aparece "torta" nas fotos

Tradição de foto torta não surtiu efeito para os galeses desta vez - Twitter/Eurocopa
Tradição de foto torta não surtiu efeito para os galeses desta vez Imagem: Twitter/Eurocopa

Bruno Fernandes

Colaboração para o UOL, em Recife

26/06/2021 15h13

Superados pela Dinamarca pelo placar de 4 a 0, hoje (26), o que os deixa fora das quartas de final da Eurocopa, os astros do País de Gales chamaram atenção mesmo antes de a partida começar na Amsterdã Arena. Enquanto a maioria das seleções se apresentam de forma organizada antes dos jogos para tirar a foto da equipe, os galeses adotaram a superstição de posar de forma torta para as fotos.

Fãs com o olhar mais atento, no entanto, logo perceberam que os heróis da Euro 2020 estão "lutando" desde 2016 para fazer uma fila organizada para as fotos. Na Euro de cinco anos atrás, quando Gareth Bale e companhia foram até a semifinal, o costume de posar o time de forma "torta" também já acontecia.

A formação tem cinco jogadores em pé, quatro, sem combinar com a direção da fileira de atletas agachados. Com esse esquema tático para as fotos, o país britânico é a única seleção da Euro 2020 a se comportar desta maneira. A explicação: sinal de boa sorte. O que parece não ter funcionado desta vez, já que a equipe acabou eliminada do torneio.

Seleção do País de Gales em partida contra a Croácia, em 2019 - Divulgação - Divulgação
Seleção do País de Gales em partida contra a Croácia, em 2019
Imagem: Divulgação

Segundo o portal galês Wales Online, no começo, os jogadores posaram desalinhados por descuido e sem perceber, mas como viram que venciam jogos sempre que o "acidente" acontecia transformaram o erro em uma superstição adotada pela seleção.

"Nós simplesmente não éramos muito bons nisso. No começo não percebemos, mas depois, gradualmente, algumas fotos foram se juntando e foi horrível, então pensamos que poderíamos muito bem mantê-las do mesmo jeito", explicou o meio-campista Joe Ledley, que atuou na seleção em 2016.

Na partida de hoje, disputada no Arena, Johan Cruijff, os galeses foram derrotados por 4 a 0 e consequentemente eliminados do torneio. A Dinamarca, por outro lado, é a primeira seleção classificada para as quartas de final desta edição, algo que não acontecia desde 2004, quando caiu para a seleção Tcheca de Futebol.