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

Beyoncé faz história e se torna a artista mulher mais premiada do Grammy

Beyoncé no Grammy 2021 - Kevin Winter/Getty Images
Beyoncé no Grammy 2021 Imagem: Kevin Winter/Getty Images

Renata Nogueira

De Splash, em São Paulo

15/03/2021 00h02Atualizada em 16/03/2021 14h05

É ela! Beyoncé levou quatro dos nove prêmios a que concorria no Grammy 2021 e se tornou hoje a artista feminina que mais ganhou gramofones na história do mais importante prêmio da indústria da música.

Ela completou 28 prêmios ao vencer hoje nas categorias melhor clipe ("Brown Skin Girl"), melhor canção de rap e melhor performance de rap e melhor performance de R&B, categoria que a fez bater o recorde com "Black Parade". A letra da música é uma exaltação à cultura africana.

Eu queria erguer, animar, incentivar e comemorar os reis e rainhas negros e negras que continuam a me inspirar e a inspirar o mundo. Beyoncé no Grammy 2021

Ela continuou. "Trabalhei a minha vida inteira, desde os nove anos de idade, e nem acredito que isso está acontecendo. Essa noite é mágica. Muito obrigada."

Beyoncé ainda aproveitou o momento para parabenizar Blue Ivy Carter, sua filha mais velha, que mais cedo conquistou seu primeiro Grammy. A menina de nove anos canta em "Brown Skin Girl", que ganhou o Grammy de melhor videoclipe. A mamãe também lembrou de seus gêmeos.

"Eu sei que as minhas duas filhas e o meu filho estão me assistindo. Blue, parabéns, você ganhou um Grammy. Estou muito orgulhosa de você. É uma honra ser a mãe de vocês. Tenho muito orgulho de vocês."

Cantora iguala Quincy Jones

Com a noite histórica no Grammy 2021, Beyoncé supera a cantora e violinista norte-americana Alisson Krauss, dona de 27 Grammys. E fica cada vez mais perto de se tornar a maior artista de todos os tempos do Grammy.

Beyoncé Knowles, que neste ano já tinha igualado o número de indicações de Paul McCartney (79), se aproxima do maior vencedor de todos os tempos: o maestro húngaro-britânico Georg Solti (1912 - 1997), dono de 31 Grammys. Ela ainda igualou o número de Grammys do lendário produtor musical Quincy Jones, que também tem 28 gramofones e é o recordista de indicações junto com Jay-Z (o marido de Beyoncé, veja bem): 80 cada.

Apesar de todos os louros, Beyoncé ainda carrega a polêmica de nunca ter vencido as duas principais categorias: gravação do ano e álbum do ano. Em 2017, quando concorria a álbum do ano com "Lemonade", a vencedora da categoria Adele chegou a dizer que não poderia aceitar e dedicou o prêmio a ela.

Veja todos os vencedores do Grammy 2021!