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

Fátima mais ousada? Apresentadora compara looks do JN e The Voice Brasil

Fátima Bernardes assume o comando do "The Voice Brasil 2022" - João Cotta/Globo
Fátima Bernardes assume o comando do "The Voice Brasil 2022" Imagem: João Cotta/Globo

De Splash, no Rio

10/11/2022 19h56

Fátima Bernardes, de 60 anos, assume o comando do "The Voice Brasil 2022", que estreia na próxima terça-feira, na TV Globo, e os telespectadores podem esquecer os looks mais sérios usados no "Jornal Nacional" e também os mais suaves do matinal "Encontro".

Logo na gravação da estreia, a apresentadora aposta em um visual um pouco mais ousado: cropped, blazer com pedrarias e calça justinha. Em coletiva de imprensa sobre a estreia do reality musical, Fátima comentou a diferença dos looks dos programas que já apresentou.

"Botei o cropped para jogo, né? Eu tenho uma situação engraçada: quando fazia o 'Jornal Nacional', chegava em uma loja, a pessoa dizia para mim: 'tenho uma roupa que é a sua você'. E sempre era um blazer. Não que eu não gostasse, mas achavam que eu era um blazer. Agora, no 'The Voice', vou ar isso com o cropped...", contou a apresentadora.

"Claro que eu não tô maluca, fazia 'Jornal Nacional' e era inviável. Depois, fazia um programa de manhã, também não dava para usar pedras e cropped. Estou achando lindos os figurinos do 'The Voice Brasil'", completou.

A apresentadora também revela estar ansiosa para estrear em um reality show. "É um novo formato, diferente de tudo o que fiz. Se antes minha grande dificuldade era istrar de um programa ao vivo, agora é fazer um programa que tem um formato, um lugar no coração do público, e que tem, por minha parte, a expectativa de ser eu mesma ali", disse.

"Estou feliz de fazer um reality que demanda do apresentador outro tipo de comportamento. Cada vez que eu entro no palco para gravar os programas, eu agradeço pela oportunidade de estar fazendo algo tão diferente e que está agregando tanto para mim", acrescentou.

The Voice Brasil 2022

Além de Fátima Bernardes, o programa traz outras novidades. Quem comanda os bastidores é Thais Fersoza, enquanto Gaby Amarantos se une aos técnicos veteranos, IZA, Lulu Santos e Michel Teló — que busca a sétima vitória seguida na competição. O reality estreia na próxima terça-feira (15) e será exibido às terças e quintas após "Travessia", incluindo no período da Copa do Mundo.

Pela primeira vez, o "The Voice Brasil" terá elenco majoritariamente feminino, uma técnica da região Norte do país e duas mulheres negras nas famosas cadeiras vermelhas do reality. "O Brasil é formado por mulheres e pessoas pretas, o 'The Voice' se alinha a esse momento em que a gente vive. A gente vive um momento de esperança, de ver o nosso Brasil sorrindo. As pessoas vão se emocionar com os nossos talentos", conta Gaby, natural de Belém (PA).