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

Lucas Pasin

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

BBB 23: Com tom de voz calmo, Gabriel cria novo personagem e pode dar certo

Colunista do UOL

24/01/2023 23h03

Receba os novos posts desta coluna no seu e-mail

Email inválido

* Da redação de Splash

Após dizer que irava Felipe Prior, do BBB 21, Gabriel, participante do BBB 23, chamou atenção ao se comparar com Arthur Aguiar, campeão da edição ada do reality da TV Globo.

O colunista Lucas Pasin avalia que o modelo está em busca de uma nova estratégia de jogo após a polêmica envolvendo o recado de Tadeu Schmidt sobre o seu relacionamento com Bruna Griphao.

O Gabriel refez a rota depois de ter sido cancelado. Ele quer ser o Arthur Aguiar. e Esse tom de falar calmo é um novo personagem e vai ser inável acompanhar isso. O pior é que tem chance de dar certo.

Para a colunista Aline Ramos, Gabriel está longe de ser parecido com o vencedor do BBB 22.

Cada participante tem uma história diferente. A do Arthur Aguiar não é parecida com a do Gabriel. Dentro do BBB ele não fez nada parecido com o que o Gabriel fez. O erro dele foi ter sido chato.

BBB 23: Com paz entre sisters, rivalidade entre Bruna e Key chegou ao fim?

Bruna Griphao e Key Alves fizeram as pazes após conversarem sobre os desentendimentos que tiveram no BBB 23. O Central Splash debateu se a paz vai reinar entre as sisters ou se a rivalidade entre elas pode ter novos capítulos.

Para o colunista Lucas Pasin, a Bruna realmente tentou ser amiga de Key, diferente da jogadora de vôlei.

Eu acho que a Bruna nunca quis ter um conflito com a Key, mas a atleta quis desde o primeiro momento e ainda faz questão. Ela não está disposta a parar de ter uma rivalidade com a atriz.

Já a colunista Aline Ramos avalia que Key Alves fez bem ao conversar com a atriz para limpar sua imagem, já que ela está no primeiro paredão ao lado de sua dupla, Gustavo.

Quanto a Bruna, a colunista diz que ela precisa "reiniciar o jogo".

A Bruna precisa resetar o jogo dela, como se ela tivesse que entrar novamente na casa e fazer novas alianças. Eu sinto que ela está em um tempo diferente do restante da casa.

No Central Splash, Chico Barney, Aline Ramos e Lucas Pasin discutem tudo o que está bombando nos reality shows, TV e na vida das celebridades e subcelebridades.

Quando: de segunda a sexta-feira, sempre às 18h.

Onde assistir: ao vivo no canal de Splash no YouTube, no Twitter e no Tik Tok de Splash.

Assista à íntegra do programa: