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

Al Janoub: estádio foi 1º meme da Copa por semelhança com órgão feminino

Do UOL, em São Paulo

22/08/2022 04h00

Classificação e Jogos

Entre os oito estádios construídos para a Copa do Mundo do Qatar, o Al Janoub foi o único a virar meme . Aliás, ele foi o primeiro meme de todo o Mundial. A história começou na divulgação das imagens das arenas que receberiam o torneio. O que os arquitetos definiram como neofuturista, no Brasil o formato lembrou os internautas do órgão sexual feminino.

O estádio fica numa cidade chamada Al Wakrah, 23 km ao sul da capital Doha. É uma cidade costeira com população que não chega a 90 mil habitantes, algo como Seropédica-RJ ou Serra Talhada-PE. Al Wakrah é conhecida como um centro de mergulho e pesca de pérolas —até a descoberta do petróleo, essa era a base da economia do Qatar.

É justamente essa conexão com o mar que influenciou o design do estádio: ele é inspirado nas velas dos tradicionais barcos dhow usados na pesca de pérolas e tem um formato externo arredondado e curvo. Na parte interna, vigas sustentam o teto, o que remete ao casco de um navio e permite que a luz incida no campo. Já as arquibancadas são pintadas em azul e branco no formato das ondas do mar.

O projeto é de um dos escritórios de arquitetura mais famosos do mundo, o Zaha Hadid, responsável por obras muito importantes como o Museu Maxxi em Roma e o centro aquático de Londres. O Al Janoub foi inaugurado em maio de 2019, na final da Copa do Emir que teve Xavi Hernández em campo pelo Al Sadd.

Na Copa, vai receber seis jogos da fase de grupos e mais um das oitavas de final em 2022. É onde estreia a atual campeã França diante da Austrália, onde Gana x Uruguai reeditam o confronto épico da Copa da África do Sul e também onde se enfrentam Suíça x Camarões e Camarões x Sérvia pelo grupo da seleção brasileira.

A capacidade é de 40 mil pessoas, mas será reduzida pela metade depois da Copa. No entorno, foram desenvolvidos espaços para eios a cavalo, pistas de corrida e ciclovias, além de plantadas 800 árvores de baixo consumo de água. O estádio fica numa região forte em relação ao turismo, com praias, lojas e museu, e o Qatar aposta nessa sede como um dos atrativos da Copa para além do futebol.

Veja imagens por dentro e por fora

FICHA TÉCNICA

Nome: Estádio Al Janoub;
Local: Al Wakrah;
Distância do centro de Doha: 23 km;

Jogos que vai receber:
22/11, 16h - França x Austrália
24/11, 7h - Suíça x Camarões
26/11, 13h - Tunísia x Austrália
28/11, 13h - Camarões x Sérvia
30/11, 12h - Austrália x Dinamarca
2/12, 12h - Gana x Uruguai
5/12, 12h - Oitavas de final (1ºE x 2ºF)

Capacidade na Copa: 40 mil;
Capacidade pós-Copa: 20 mil;
Inauguração: 16 de maio de 2019;
Design: inspirado nas velas dos tradicionais barcos dhow usados na pesca de pérolas, base da economia do Qatar antes da descoberta do petróleo.

Errata: este conteúdo foi atualizado
Diferentemente do que foi publicado no texto, Zaha Hadid fez o projeto do Estádio Nacional de Tóquio, mas foi rejeitado. O erro foi corrigido.