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

Jessilane para Paulo André: 'Menino birrento e bam-bam-bam'

BBB 22: "Birrento e bam-bam-bam", Jessilane disparou contra Paulo André - Reprodução/Globoplay
BBB 22: 'Birrento e bam-bam-bam', Jessilane disparou contra Paulo André Imagem: Reprodução/Globoplay

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

05/04/2022 00h43

Após discutir com Arthur Aguiar, Jessilane teve outra oportunidade para apontar suas desavenças com os brothers da 'Disney', no jogo da discórdia do "BBB 22" (TV Globo), de segunda-feira.

A bióloga iniciou: "Em relação ao P.A, por mais que a gente tente construir uma relação boa, algumas pequenas atitudes são atitudes de 'centavos', porque são atitudes de menino birrento de certa forma".

Em alguns momentos, percebo que ele acaba sendo debochado e acha que só ele pode fazer aquilo, e expõe isso de uma forma que me incomoda Jessilane para Paulo André

Ela, então, listou dois momentos para justificar seu argumento: "O primeiro, no dia que fui anjo e fui dar o monstro, aí ele ficou 'ah, agora todo mundo fala isso'. Como se você estivesse bem e soltasse alfinetadas".

Depois, na ação patrocinada de hoje, você pegou o papel pra ler, a gente comemora e você fica assim e você 'não, estou esperando todo mudo calar'... Jessilane

"Eu falei desse jeito aí?", rebateu o atleta.

São atitudes de menino birrento, estrelinha, que quer ser o bam-bam-bam Jessilane, sobre P.A

Apesar de ter dito que só mencionaria duas atitudes do brother, a bióloga relembrou de uma terceira atitude que desaprovou: "No jogo da discórdia, te dei plaquinha e você não rebateu e depois veio me dizer que ganhava pontos com o público porque parecia que tinha planejado aquilo. E foi algo que a Linn disse hoje: você quer ouvir algo que te agrada".

"Eu só quis esclarecer minha posição", respondeu Paulo André.

Você poderia ter feito isso no seu momento de fala. Então, tipo assim, você espera ouvir uma coisa e, quando não falamos, você se desagrada. Você tem comportamentos de menino birrento e mimado que me incomodam Jessilane

Paulo, então, se defendeu: "Da mesma forma que você tem suas percepções, eu tenho a minha. Coloco uma pessoa no monstro e não vou ficar fazendo sala. O monstro é um castigo".

"E eu nem fiz isso", rebateu Jessi.

"E qual foi a outra? Preciso que você me pontue", disparou P.A.

"Ah, vou falar não", respondeu a bióloga.

A dupla foi discutindo até ser interrompida por Arthur Aguiar, que foi rebatido pela sister: "Você quer vir aqui defender o P.A?"

"Quando eu tava falando, vocês também estavam", disse o ex-Rebelde.

Finalizando, o atleta argumentou: "Você tá me colocando como se eu me achasse um bam-bam-bam. Mas aí vocês aram o jogo todo que fiquei escondido, aí quando falo sou o bam-bam-bam? Eu falar que atleta sente dor eu estou me achando? Sentir dor não é vantagem nenhuma. Não quis dizer que eu sou o brabo."

Quem você quer mandar para o quarto secreto do 'BBB 22'?

Enquete encerrada

Total de 214675 votos
65,67%
Reprodução/Instagram @bbb