;(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();
})();
Do Xou da Xuxa à cadeirada: os memes que dominaram 2024
O meme 'Que Xou da Xuxa é Esse' fez sucesso em 2024
Reprodução/TV Globo
De Splash, em São Paulo
31/12/2024 16h46
No ano de 2024, o povo brasileiro provou mais uma vez o seu talento para criar memes. Foi um ano em que também fomos reconhecidos por nossos dons na comédia: vários estrangeiros lamentaram nosso bloqueio do X entre agosto e outubro. A "seca" de memes brasileiros até virou reportagem lá fora.
Foram muitos memes que surgiram dos mais variados terrenos: da política, da televisão, dos filmes, do TikTok. Fica até difícil relembrar todos, mas alguns foram "inescapáveis".
Relembre os memes que dominaram 2024
Continua depois da publicidade
Jeniffer, a mulher do avião
Jeniffer Castro permaneceu imível ao ser confrontada por não trocar de assento com uma criança no avião. O vídeo rendeu um dos grandes memes do final do ano.
a janela fechada pqp ela não queria que a criança visse o céu nem de longe https://t.co/aXpL4mNl
"Que xou da Xuxa é esse?!", perguntou Patrícia Martins em 1988. A cena, que veio à tona no doc "Pra Sempre Paquitas", ganhou as redes sociais em 2024.
Calma, Calabreso
No BBB, Davi foi mal interpretado ao resgatar uma frase de Toninho Tornado. "Calma, Calabreso" viralizou, virou música e, agora, o campeão do reality adotou Calabreso como apelido.
"Pé de Chinesa" é invenção do dono da página Baú Explica. A novela "criada" por Gloria Perez traria Jade Picon e Davi Brito no elenco. Até Angélica e Ana Maria entraram na piada.
A música de Thullio Milionário fez sucesso no TikTok, e "casca de bala" virou sinônimo de melhor amigo, parça, companheiro. Foi impossível escapar da faixa neste ano.
O humorista Tatá virou meme após se recusar a jogar uma casca de melancia fora. O resultado? Participações em clipes e podcasts e mais de 6 milhões de seguidores nas redes sociais.
Maya Massafera se comunicou apenas com gestos enquanto se recuperava de uma cirurgia nas cordas vocais. Assim, criou sua própria "língua", baseada em beijinhos e corações.
A performance duvidosa da australiana Raygun se tornou um dos maiores memes nas Olimpíadas. Infelizmente, por outras razões, a modalidade estará de fora das Olimpíadas de LA.
É verdade que muitos desses memes já estão "saturados"....
Aguardamos ansiosos pelos memes que 2025 nos trará!
-então.. meu amigo secreto é bem amostradinho? -É O JOÃO -caaaalma calabreso, deixa eu terminar? ele é amostradinho, é meu casca de bala? -AHHHHHH É O RODRIGO -gente que xou da xuxa é esse? deixa eu terminar, não sufoque o artista? eu tirei o joão mesmo? RECEBA
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.