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

'Troféu Melhores do Ano 2021': Confira os vencedores em cada categoria

De Splash, no Rio

02/01/2022 17h42

O "Domingão com Huck" (Globo) revelou hoje os vencedores do Troféu Melhores do Ano de 2021, que desde 1995 premia destaques do entretenimento e do jornalismo.

Foi a primeira vez que Luciano Huck comanda a cerimônia, tradicionalmente apresentada por Fausto Silva, que deixou a Globo para apresentar um novo programa na Band.

Huck citou Faustão ao iniciar o programa:

É uma honra apresentar esse prêmio que foi brilhantemente apresentado por meu querido amigo Fausto Silva. Traremos novidades, mas com muito respeito do que foi construído até aqui.

São 10 categorias em que o público decide os vencedores. Além disso, o Melhores do Ano 2021 homenageará o humorista Paulo Gustavo, que morreu no último ano, vítima da covid-19.

A gravação do programa foi realizada no dia 15 de dezembro e recebeu nomes como Adriana Esteves, Paulo Vieira, Juliette, Selton Mello e Israel e Rodolffo, entre outros. Entre os destaques da edição, as várias piadas, envolvendo a própria Globo, emitidas com participação do humorista Paulo Vieira.

Juliette e Selton Mello participam do 'Melhores do Ano' da Globo - Reprodução/Instagram  - Reprodução/Instagram
Juliette e Selton Mello participam do 'Melhores do Ano' da Globo
Imagem: Reprodução/Instagram

Confira os vencedores*:

Atriz de série:

Cassia Kis, a Haia, de Desalma
Leticia Colin, a Amanda, de Onde Está Meu Coração
Marjorie Estiano*, a Carolina, de Sob Pressão

Jornalismo

Maju Coutinho
Renata Vasconcellos*
William Bonner

Ator de série

Bruno Mazzeo, o Murilo, de Diário de um Confinado
Julio Andrade*, o Evandro, de Sob Pressão
Marcello Melo Junior, o Mikhael, de Arcanjo Renegado

Humor - Troféu Paulo Gustavo

Fábio Porchat
Marcelo Adnet
Tatá Werneck*

Série

Arcanjo Renegado
Ilha de Ferro
Sob Pressão - Plantão Covid*

Personalidade digital

Ary Fontoura
Átila Iamarino
Juliette*

Música do ano

Batom de cereja, da dupla Israel e Rodolffo*
Recairei, do grupo Barões da Pisadinha
Baby Me Atende, de Matheus Fernandes

Ator de novela

Chay Suede, o Danilo, de Amor de Mãe*
Irandhir Santos, o Álvaro, de Amor de Mãe
Selton Mello, o Dom Pedro II, de Nos Tempos do Imperador

Atriz de novela

Adriana Esteves, a Thelma, de Amor de Mãe
Jéssica Ellen, a Camila, de Amor de Mãe
Regina Casé, a Lurdes, de Amor de Mãe*

Novela

Amor de Mãe*
Nos Tempos do Imperador
Salve-se Quem Puder

Tatá Werneck se emociona no 'Melhores do Ano' com Troféu Paulo Gustavo  - Reprodução/Globoplay - Reprodução/Globoplay
Tatá Werneck se emociona no 'Melhores do Ano' com Troféu Paulo Gustavo
Imagem: Reprodução/Globoplay