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

Marina Ruy Barbosa prioriza vida profissional: "Meu marido não reclama"

Marina Ruy Barbosa em evento da Vivara - Carolina Martins
Marina Ruy Barbosa em evento da Vivara Imagem: Carolina Martins

Carolina Martins

Colaboração para Universa

20/12/2018 13h31

Marina Ruy Barbosa ama joias e as cultiva desde outras gerações da família. Com esta atitude ela pretende fazer o mesmo com seus futuros filhos. "Tem peças muito marcantes. Quero ar meu anel de noivado. E se eu tiver um menino, ele poder presentear a futura esposa dele", disse a atriz, na noite desta quarta-feira, 19, durante a festa da Vivara em homenagem a Gisele Bündchen, que aconteceu no Restaurante Viva, no Spot instalado no rooftop do Museu de Arte Contemporânea (MAC), em São Paulo.

Aos 23 anos, Marina diz ter realizado muito sonhos. Um deles foi cantar ao lado de Roberto Carlos para o especial de fim de ano da Globo. O Rei fez o convite a atriz por meio de uma ligação. "Foi muito emocionante. amos a música no estúdio e perguntei se ia cantar "Menina", uma das minhas músicas prediletas. Ele disse que não estava no repertório e mesmo assim ele começou a cantar a música. Cantou ali para mim. Tinham poucas pessoas. E eu babando", disse. "No dia da apresentação ele fez uma surpresa para mim e cantou de novo antes de subir no palco. Tive que me controlar para não me emocionar mais ainda. Um dos momentos mais inesquecíveis da minha vida", completou. 

Veja também

Mariana Rios fala sobre casamento: "Vai ser tudo planejado, aos poucos"

Em São Paulo, Gisele transforma carro em camarim para retocar maquiagem

Duda Nagle entrega joias que comprou para Zoe: "Quero comemorar cada etapa"

O marido da atriz, o piloto Xandinho Negrão, também não deixa de ser uma das "aquisições" de seus sonhos. Com uma agenda tão atribulada, devido a gravações de novelas e campanhas e presenças vips, Marina vive publicando elogios e agradecimentos a posição que o marido exibe. "Ele não reclama porque ele me conheceu assim. Ele sabe que minha prioridade, no momento, sempre foi a profissão. São fases. Daqui a pouco terei um tempo maior da gente poder se curtir, de acompanhar mais ele. Acaba que ele me acompanha muito hoje em dia. Ele é muito parceiro e paciente nesse sentido. Ele me apoia porque ele sabe o quanto isso me faz bem e feliz. Conversamos muito sobre isso também, mesmo ele não trabalhando no meio, ele é meu confidente, meu melhor amigo. Então sempre peço opinião das coisas. Ele é muito maduro nesse sentido".

Abrir mão das festas de fim de ano, será mais um quesito na vida do casal. "Eu li que ia para Noronha. Eu amo lá porque também foi onde conheci meu marido, mas só terei 3 dias de folga e para ir pra lá, seria muita correria. Então quero descansar porque este ano foi muito corrido", disse a atriz que só conseguirá desacelerar ano que vem, após o fim da novela, "O Sétimo Guardião", em maio. "Irei tirar férias merecidas. Esse ano tive 12 dias de férias onde levei sinopse, texto, porque emendei uma novela na outra e você não desliga totalmente".