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

Desempregado, encontro com Neymar e desejo de implante: o pós-BBB de Alface

Ricardo, o Alface do BBB 23, na final do programa - Reprodução/Instagram
Ricardo, o Alface do BBB 23, na final do programa Imagem: Reprodução/Instagram

De Splash, em São Paulo

29/04/2023 08h51Atualizada em 29/04/2023 08h51

Ricardo Alface realizou o sonho de conhecer Neymar. "Batman e Coringa", escreveu o ex-BBB na legenda da foto publicada no Instagram.

"Deus abençoe sua vida, guerreiro! Tamo junto, figura", comentou o jogador.

Pós-BBB

Ele contou que espera "conseguir trabalhar e ter um salário": "Eu estava de férias do trabalho quando fui chamado para o BBB. Então, não tinha como avisar que eu não ia voltar. Preferi ir para o BBB", disse em entrevista a Patrícia Kogut, do jornal O Globo.

No momento não tem como eu voltar a trabalhar com biomedicina, embora eu goste muito da minha área. Quero focar em publicidades para tentar ter uma estabilidade financeira e poder ajudar minha família. Pretendo reformar a nossa casa em Sergipe e ajudar minha irmã e meu sobrinho. Ela também largou o emprego dela para me ajudar nessa aventura, porque acreditava em mim.

Alface também falou sobre a relação com Sarah: "Vou levar a Sarah para o resto da minha vida. Ela foi importante para mim como jogador e como pessoa. Tive um aprendizado muito grande com ela. Independentemente de qualquer coisa, nós sempre fomos amigos. Sabemos que nosso sentimento sempre foi muito verdadeiro e que continua aqui fora. Agora é deixar acontecer, ver se esse romance vai se estender. Estamos levando tudo da forma mais leve e respeitosa possível, para que ninguém seja magoado".

Mudança no estilo e uso de maquiagem: "Sempre irei muito pessoas que se vestem dessa forma, sem se preocupar com preconceito. Mas nunca tive coragem de me vestir igual, apesar de ter vontade. Mesmo antes de entrar eu já me maquiava com base, era tranquilo. Mas no programa vejo o Gabriel Santana com lápis de olho, cropped... E isso despertou algo em mim. Me incentivaram, e eu quis ver como ficava. Foi um momento de virada de chave para mim. Gostei do que vi e quero continuar usando aqui fora".

O sergipano ainda revelou que pensa em investir em um implante capilar: "Queria fazer implante de cabelo para poder fazer dread ou tranças. Mas também ter a opção de continuar careca".

Reprodução/Globoplay

Veja aqui as principais novidades do Big Brother Brasil. Acompanhe as principais notícias e análises sobre as provas, formação de paredão, discussões, casais, enquetes e muito mais. O reality, produzido pela Globo e apresentado por Tadeu Schmidt, chega a sua 25ª edição com uma inovação: pela primeira vez, os participantes entraram na casa em duplas.