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

Retratos

Instantâneos de realidade do Brasil e do mundo


Piscinão de Ramos faz 20 anos: relembre momentos icônicos com Anitta e mais

Anitta gravou o clipe de "Girl From Rio" no Piscinão de Ramos - Reprodução/Instagram/Mar+Vin
Anitta gravou o clipe de "Girl From Rio" no Piscinão de Ramos Imagem: Reprodução/Instagram/Mar+Vin

Luiza Souto

De Universa

16/12/2021 13h35

Conhecido por alguns apenas depois que Anitta gravou seu clipe "Girl from Rio" no local, o Piscinão de Ramos, na zona norte do Rio de Janeiro, completa duas décadas nesta quinta-feira (16).

Nesses 20 anos, a praia de 26,4 mil metros quadrados serviu de areia de fundo para músicas e cenários de novelas —os mais antigos provavelmente se lembram do bordão "Cada mergulho é um flash", da personagem de Mara Manzan em "O Clone". A novela está no ar em Vale a pena ver de novo, na TV Globo.

Turma de amigas se reúne no Piscinão de Ramos durante a pandemia. - Lucas Landau/UOL - Lucas Landau/UOL
Turma de amigas se reúne no Piscinão de Ramos durante a pandemia.
Imagem: Lucas Landau/UOL

O local também ditou moda: foi ali que biquínis de fita isolante fizeram sucesso entre a mulherada.

Para celebrar a data, Universa seleciona alguns momentos icônicos no Piscinão.

Anitta leva Ramos para o mundo

Em novembro de 2020, a cantora Anitta gravou o clipe "Girl from Rio" em Ramos. A música foi lançada em abril deste ano, e rendeu até o "meme do ônibus": para apresentar o lançamento do single, a artista divulgou uma foto em cima de uma cadeira azul, com um ônibus atrás. Em minutos criou-se um o a o para os internautas se colocarem na cadeira, e a criatividade bombou nas redes.

Aliás, Anitta já se apresentou no Piscinão no Réveillon de 2012.

Mara Manzan e Juliana Paes viveram Odete e Karla em O Clone (Reprodução) - Reprodução / Internet - Reprodução / Internet
Mara Manzan e Juliana Paes viveram Odete e Karla em O Clone (Reprodução)
Imagem: Reprodução / Internet

Cada mergulho, um flash

Com mais de 20 papéis no teatro e na TV, a atriz Mara Manzan —morta em 2009 vítima de um câncer— caiu nas graças do público quando sua personagem Odete Santos criou o bordão "Cada mergulho é um flash", na novela "O Clone." Ela interpretava a mãe de Karla, papel de Juliana Paes. As duas batiam ponto no local.

Mulheres apostam no biquíni de fita isolante no Piscinão de Ramos - Lucas Landau/UOL - Lucas Landau/UOL
Mulheres apostam no biquíni de fita isolante no Piscinão de Ramos
Imagem: Lucas Landau/UOL

Marquinha de fita isolante

A mulherada que chega ao Piscinão se depara com uma infinidade de ofertas de biquínis de fita isolante, febre nas lajes cariocas —e que também ficaram ainda mais conhecidos quando Anitta usou um modelo no seu clipe "Vai Malandra", de 2017.

Mas, antes dela, outras artistas como Tati Quebra Barraco e Fabiana Escobar, a Bibi Perigosa que inspirou a personagem de Juliana Paes em "A Força do Querer", também usaram o modelito.

Recentemente, a atriz Dandara Mariano também apostou em biquíni de fita isolante no funk da "Super Dança".