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

Camilla de Lucas mostra projeto 3D de nova mansão; veja

Camilla de Lucas mostrou antes e depois de casa no Rio de Janeiro  - Reprodução/Instagram/@camilladelucas
Camilla de Lucas mostrou antes e depois de casa no Rio de Janeiro Imagem: Reprodução/Instagram/@camilladelucas

De Splash, em São Paulo

05/02/2022 10h41Atualizada em 05/02/2022 10h56

Depois de anunciar a mudança para uma casa própria no Rio de Janeiro, Camilla de Lucas fez um tour pelo projeto em 3D da mansão, explicando detalhes da reforma no imóvel, que já está em andamento.

No Instagram, a influenciadora postou algumas fotos de antes e depois da casa, para comparar o visual atual com o planejado. Ela ainda compartilhou um vídeo detalhado no YouTube ao lado do noivo Mateus Ricardo, em que os dois fazem uma "viagem" por todos os cômodos e contam sobre as mudanças que farão no novo lar.

"E finalmente temos o projeto 3D da casa nova! Olha como vai mudar BASTANTE! Compartilhei um vídeo novo no canal mostrando todos os detalhes dos cômodos. E aí?! O que acharam?", escreveu a ex-"BBB 21" em seu perfil nas redes sociais, mostrando o projeto da área externa da casa, da piscina e da cozinha.

antes e depois piscina camilla - Reprodução/Instagram/@camilladelucas - Reprodução/Instagram/@camilladelucas
Projeto de reforma na piscina de Camilla de Lucas
Imagem: Reprodução/Instagram/@camilladelucas

Camilla anunciou que iria deixar seu apartamento alugado em Nova Iguaçu para se mudar para um imóvel próprio no início de janeiro. Na ocasião, ela contou que o processo de mudança está acontecendo desde junho de 2021, quando decidiu que queria "construir algo meu, do meu futuro" ao lado do noivo.

Em um vídeo no YouTube, a influenciadora contou que ficou chocada com os valores dos aluguéis e, mesmo se apaixonando por algumas casas que conheceu - e inclusive mostrou aos seguidores os imóveis —, decidiu comprar um lar para chamar de seu.

Ela confidenciou que encontrou o lugar ideal em um condomínio na Zona Oeste e que já havia gastado mais de R$ 80 mil na reforma, apenas com revestimentos.

cozinha camilla - Reprodução/Instagram/@camilladelucas - Reprodução/Instagram/@camilladelucas
Projeto de cozinha da futura casa da ex-BBB
Imagem: Reprodução/Instagram/@camilladelucas

A influenciadora também comentou sobre a possibilidade de fazer permutas - trocando itens para a casa em troca de publicidade - como uma forma de ajudar na mudança.

"Toda parceria que vier é boa", escreveu. "Mas não comprei nada. Na verdade só tem duas coisas que ganhei no BBB (geladeira de duas portas e uma máquina de lavar) e uma geladeira. Tá tudo na sala do apartamento", contou aos fãs.

camilla area externa - Reprodução/Instagram/@camilladelucas - Reprodução/Instagram/@camilladelucas
Parte externa de casa de Camilla de Lucas
Imagem: Reprodução/Instagram/@camilladelucas

No vídeo postado ontem por Camilla ela confidenciou que a obra ainda irá perdurar algum tempo, já que o projeto prevê "quebrar a casa toda".

Confira abaixo o tour 3D completo pela futura casa da influenciadora: