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

Exagero? Campeã do BBB usa 'caras e bocas' para disfarçar nervoso na Globo

Colunista do UOL

02/08/2023 14h14

Receba os novos posts desta coluna no seu e-mail

Email inválido

* Da redação de Splash

Vencedoras respectivamente do BBB 20 e BBB 23, as médicas Thelma de Assis, 38, e Amanda Meirelles, 32, participaram hoje do programa Encontro com Patrícia Poeta, onde rememoraram suas trajetórias no reality show.

O colunista Lucas Pasin acredita que o nervosismo de Amanda na ocasião era gritante. "Se a Amanda quiser ter esse lugar na comunicação - o que eu acho que é um desejo dela -, precisa aprimorar um pouco mais, porque ainda entrega muito despreparo frente às câmeras."

Ele acredita que a loira não pode seguir repetindo em outros programas o personagem que encarnou no Big Brother. "Aquela Amanda que fez sucesso no BBB, desengonçada, cheia de caras e bocas, não funciona mais agora em um programa [de TV]. Fica ruim, estranho, fica exagerado. Ela precisa ter esse preparo."

Dieguinho Schueng concorda com Pasin. "Como apresentadora de TV, Amanda é uma ótima médica. Ela teve uma certa dificuldade para responder sobre a trajetória dela no BBB - foi a hora em que ela gaguejou mais. O que ela ia falar? 'Fiquei dormindo e ganhei o prêmio'?"

Na visão de Schueng, Thelma tem muito mais domínio da linguagem televisiva que Amanda. "Ainda acho que a Amanda não é uma pessoa das câmeras, tampouco uma pessoa para estar sentada em um sofá como o do Encontro ou de qualquer programa de TV. Diferente da Thelminha, que já tem domínio total da câmera, do palco... Já está em outro patamar."

Documentário de Xuxa constrange por ser tão parcial, critica Dieguinho

Lançado na semana ada pelo Globoplay, o terceiro episódio de "Xuxa, o Documentário" segue repercutindo entre o grande público. A atração gera controvérsia ao abordar a relação entre a loira e Ayrton Senna, inclusive na ocasião da morte do piloto, que naquele então namorava oficialmente Adriane Galisteu.

Para Dieguinho Schueng, a série dirigida por Pedro Bial tem pecado no quesito imparcialidade. "O documentário da Xuxa é, na verdade, uma biografia dela - porque só fala no documentário quem gosta da Xuxa, na maior parte do tempo. A única pessoa que a gente viu até agora ser macetada nas redes sociais foi a Marlene Mattos, por conta de todo o contexto histórico das duas."

  • O programa Splash Show é exibido ao vivo de segunda a sexta-feira, às 13h, no canal de Splash no YouTube e na home do UOL, com as principais notícias do dia e comentários. Assista à íntegra: