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

Mariana Rios perde a paciência ao vivo e dá bronca em reality: 'Eu comando'

Colaboração para Splash

28/06/2023 14h47

A apresentadora Mariana Rios, 37, perdeu a paciência com o elenco de A Grande Conquista (Record) na edição de ontem do reality. Ela engrossou o discurso com os participantes após ter de apartar um barraco entre Sandra Melquíades, 50, e Victória Macan, 23.

"Existe uma voz de comando nesse programa, e essa voz sou eu! Eu não vou ficar gritando com vocês, porque tenho respeito pelo público de casa, que não merece alguém gritando no microfone, no ouvido deles!", disparou Mariana.

Incomodada ao ver que a mãe de Rico Melquíades insistia em falar por sobre ela, a apresentadora chamou diretamente a atenção de Sandra, que se calou de imediato. "Sandra, eu estou falando! Quando eu pedir a atenção para vocês, por favor, me escutem e me deem essa atenção", exigiu.

Yas Fiorelo, do prog/rama Splash Show, considera que Mariana Rios foi assertiva em sua atitude. "A Mariana não mentiu: ela é autoridade dentro do programa. É apresentadora, explica as dinâmicas... Então, gente, espera ela falar! Mariana não está errada. Ela falou com a Sandra, mas, se fosse outra pessoa interrompendo, falaria da mesma maneira."

Fefito acredita que a apresentadora se destaca mais que o próprio elenco confinado. "Acho que temos bons barracos desde o começo do programa. O problema é que a gente não se importa o suficiente com as pessoas que estão lá. Quando lembrarmos desse barraco, vamos nos lembrar pela Mariana, não pelas participantes do barraco [Victória e Sandra]."

Fefito: Suposto affair com mulher trans não muda heterossexualidade de Neymar

A influenciadora digital Sophia Barclay, 23, afirmou ao colunista Lucas Pasin, do UOL, que o jogador de futebol Neymar lhe propôs um contrato de sigilo, com multa no valor de R$ 20 mil, para evitar o vazamento do affair entre eles, em dezembro de 2021.

Sophia é uma mulher trans e já teria sido assediada por Filipe Ret. "Tanto faz se o Neymar pegou uma mulher cis ou trans - ele pegou uma mulher. A heterossexualidade do Neymar não está em questão nesse caso."

  • 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: