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

Tadeu dá esporro na Discórdia e brother rebate ao vivo no BBB 23

BBB 23: Fred Desimpedidos leva esporro de Tadeu Schmidt no Jogo da Discórdia - Reprodução/Globoplay
BBB 23: Fred Desimpedidos leva esporro de Tadeu Schmidt no Jogo da Discórdia Imagem: Reprodução/Globoplay

Colaboração para Splash, em São Paulo

20/03/2023 23h12Atualizada em 21/03/2023 00h03

Tadeu Schmidt deu um esporro em Fred Desimpedidos, que está no décimo Paredão, durante o Jogo da Discórdia da noite de hoje no BBB 23 (Globo).

Pela dinâmica da atividade, o jornalista devia ter escolhido alguém da casa para chamar de arrogante e justificar sua atitude, mas não seguiu as regras e levou uma bronca.

Tadeu Schmidt: "Então, desculpa. Pera aí. O jogo não é para você falar dar uma placa para você mesmo. Nós temos uma plaquinha com a palavra 'arrogante' e você precisa dizer quem você acha mais arrogante de todas as pessoas que estão na casa. Você não falou nada disso para ninguém, você não falou nada disso para o Alface."

Fred havia optado por entregar a plaquinha para seu adversário Ricardo Alface, mas fugiu da crítica e até pediu desculpas.

Fred Desimpedidos: "Eu vou fazer uma parada meio que inversa. Eu vou dar para o Alface, que eu acho que, em alguns momentos, pode ter sido arrogante. Mas eu acho que eu vou usar isso aí porque foi até um que eu tive da própria Mami [Aline Wirley]. Eu fui presunçoso de achar que o Brasil te queria no Paredão sendo que não sou eu que falo isso. Naquele momento eu queria dizer que, com as atitudes que você tinha aqui dentro da casa, as chances eram grandes do Brasil te querer no Paredão. Eu queria até aproveitar esse momento, porque em muitas das desavenças que eu tive aqui, eu tive a oportunidade de pedir desculpas. Teve uma que eu errei feio com você e eu não tive a oportunidade."

ENQUETE UOL BBB 23: Quem você quer eliminar no Paredão?

Enquete encerrada

Total de 114677 votos
54,59%
Divulgação/Globo