;(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();
})();
Erro da produção. Depois de uma avaliação, a eliminação foi anulada, e Gustavo e Key tiveram mais uma chance na disputa.
Ao voltar para o local da prova, o 'agroboy' respondeu à provocação de Griphao: "Eu voltei, p*rra! Chupa, Bruna! P*rra! Não falou que o cowboy tinha saído? Ele voltou, minha filha", disse.
Se arrependeu. Horas depois da treta, Griphao confessou que não tinha comentado a eliminação de Gustavo e Key com 'maldade'. Ela ainda reforçou que pretende conversar com o brother para esclarecer as coisas. "Eu gosto dele".
ENQUETE UOL BBB 23: Quem você quer que vença reality da Globo? Vote
41 anos. Cantora, conhecida por ser ex-integrante do Rouge, é casada com Igor Rickli e tem um relacionamento aberto. Os dois são pais de Antônio de 7 anos.
Antonio Carlos Júnior, mais conhecido como Cara de Sapato, tem 32 anos e é natural e João Pessoa, na Paraíba. Ele é um lutador de artes marciais mistas da categoria meio-pesado na PFL (Professional Fighters League).
Mike Roach/Zuffa LLC via Getty Images
12 / 22
Sarah Aline, Pipoca
Sarah Aline tem 25 anos e é de Osasco, em São Paulo. Ela trabalha como psicóloga e analista de Diversidade.
Reprodução/Instagram
13 / 22
Fred Nicácio, Camarote
O médico Fred Nicácio tem 35 anos e nasceu em Campos dos Goytacazes, no Rio de Janeiro. É formado também em Fisioterapia.
Reprodução/Instagram
14 / 22
Key Alves, Camarote
A jogadora de vôlei Key Alves tem 23 anos e é de Bauru, em São Paulo. É líbero do clube Osasco São Cristóvão Saúde e também trabalha como influenciadora digital.
Reprodução/Instagram
15 / 22
Marília, Pipoca
A maquiadora e influenciadora Marília tem 32 anos, é natural de Natal, no Rio Grande do Norte, mas mora em Osasco, São Paulo.
Reprodução/Instagram
16 / 22
Cristian, Pipoca
Cristian, de 32 anos, é empresário. Ele nasceu e mora em Caxias do Sul, no Rio Grande do Sul.
Divulgação
17 / 22
Marvvila, Camarote
A cantora Marvvila tem 23 anos e é natural do Rio de Janeiro. É conhecida como "A Pagodeira", título de uma de suas músicas mais famosas.
Divulgação/Alex Santanna
18 / 22
Bruno, Pipoca
Bruno é natural de São José da Laje (AL). Ele tem 32 anos e é atendente de farmácia.
Reprodução/Instagram
19 / 22
Tina, Pipoca
Tina tem 29 anos e é analista de marketing e modelo. Nascida em Angola, ela mora há nove anos no Brasil.
Divulgação
20 / 22
Gabriel Santana, Camarote
O ator Gabriel Santana tem 23 anos e é natural da capital de São Paulo. Ele esteve no elenco de Pantanal.
Reprodução/Instagram
21 / 22
Amanda, Pipoca
Médica, Amanda tem 31 anos, nasceu em Astorga e mora em Campo Largo, ambas cidades do Paraná.
Divulgação
22 / 22
MC Guimê, Camarote
MC Guimê, 30 anos, é cantor e compositor e é casado. Ele é nascido e criado em Osasco, em São Paulo.
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.
Escolha do editor
Escolha do editor
PUBLICIDADE
Veja aqui as principais novidades do Big Brother Brasil. Acompanhe as principais notícias e análises sobre as provas, formação de paredão, discussões, casais, enquetes e muito mais. O reality, produzido pela Globo e apresentado por Tadeu Schmidt, chega a sua 25ª edição com uma inovação: pela primeira vez, os participantes entraram na casa em duplas.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.