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

Mascotes de todas as Copas e Morgan Freeman roubam a cena em cerimônia

Cerimônia de abertura da Copa do Mundo do Qatar

Flavio Latif, Pedro Lopes e Rodrigo Mattos

Do UOL, em São Paulo (SP) e em Doha (QAT)

20/11/2022 12h26

Classificação e Jogos

A cerimônia de abertura da Copa do Mundo 2022 aconteceu no início desta tarde, antes da partida entre Qatar x Equador, pelo Grupo A, no estádio Al Bayt. A celebração contou com o ator americano Morgan Freeman, o cantor sul-coreano Jeon Jung-kook, do BTS, e Ghanim Al Muftah, ativista que nasceu com Síndrome de Regressão Caudal — uma condição rara. Veja aqui imagens da festa.

Mascotes de todas as Copas do Mundo também estiveram presentes, como Zabivaka, do Mundial da Rússia em 2018, Fuleco, do Mundial do Brasil, em 2014 e Zakumi, da Copa da África do Sul, em 2010.

Outras referências a edições adas de Mundiais foram as músicas. Durante a cerimônia quem acompanhou pôde ouvir 'We Are One', 'Waving' Flag' e 'Waka Waka' — todas embalaram outras Copas.

La'eeb, mascote da Copa do Qatar, também ganhou destaque. Uma imagem dele de 20m de altura e 16m de comprimento foi erguida por hastes nos estádios.

laeeb - Michael Steele/Getty Images - Michael Steele/Getty Images
La'eeb, mascote da Copa do Mundo do Qatar, durante a cerimônia de abertura
Imagem: Michael Steele/Getty Images

Jung Kook, do BTS, subiu ao palco e cantou a música 'Dreamers', música lançada com exclusividade no show de abertura da Copa. Fahad Al-Kubais, artista local, também cantou no evento.

O emir do Qatar Tamim bin Hamad al-Thani discursou na cerimônia de abertura da Copa do Mundo de 2022. O chefe de Estado adotou um tom de favorecimento à diversidade no discurso, apesar das diversas polêmicas envolvendo o país.

"Recebemos a todos de braços abertos na Copa do Mundo Fifa Qatar 2022. Nós trabalhamos e fizemos os esforços para garantir o sucesso dessa edição da Copa. Nós investimos para o bem de toda a humanidade", declarou al-Thani no início de sua fala.

"Finalmente chegamos ao grande dia, o dia da abertura, um dia esperado por muita gente. E durante 28 dias, o mundo todo vai acompanhar essa festa do futebol internacional, nesse espaço de diálogo e civilização. As pessoas, por mais que sejam diferentes, nacionalidades diferentes, culturas diferentes, orientações diferentes, vão se reunir no Qatar, e todos os continentes vão se reunir no nosso país", prosseguiu.

"Que beleza, juntar essas diferenças todas, essa diversidade toda para reunir todo mundo aqui. Desejo a todas as seleções muito sucesso e espírito esportivo elevado. Para todos vocês, meus desejos de felicidade e que aproveitem essa Copa. Bem-vindos a Doha", finalizou o emir do Qatar.

A seleção local estreia no torneio às 13h deste domingo (20), contra o Equador, no Estádio Al Bayt.

Vinicius Junior deve ser titular da seleção brasileira na Copa do Mundo?

Resultado parcial

Total de 3127 votos