;(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();
})();
Sucesso no Grammy, Megan Thee Stallion compõe desde os 16 e sofreu atentado
Megan Thee Stallion, que bombou ontem no Grammy, já foi vítima de atentado
Kevin Mazur/Getty Images
De Splash, em São Paulo
15/03/2021 13h28
Quem assistiu ao Grammy, deve ter se impressionado com Megan Thee Stallion. Além de entregar um dos melhores shows da noite, a rapper do Texas levou três prêmios para casa, incluindo o de Artista Revelação.
Mesmo com só 26 anos, Megan já tem uma longa trajetória na música. Splash te conta mais!
Megan Thee Stallion venceu na categoria artista revelação
Imagem: Kevin Mazur/Getty Images
Continua depois da publicidade
Garanhão
Em inglês, "stallion" se refere a um cavalo ou garanhão. É o nome que mulheres altas e curvilíneas costumam receber no sul dos Estados Unidos, região onde Megan nasceu. Tendo o apelido desde a adolescência, graças aos seus 1.78m de altura, a rapper adotou o "stallion" como nome artístico.
Precoce
Megan começou a compor suas letras de rap ainda aos 16 anos, mas foi orientada pela mãe a só dar início à sua carreira quando atingisse a maioridade absoluta, aos 21.
Holly Thomas, mãe de Megan, também atuava como rapper sob o nome de Holly-Wood. Ao invés de deixar a filha na creche, Holly a levava para o estúdio quando ainda era um bebê. Holly também foi a empresária da filha até sua morte, em 2019, em decorrência de um tumor no cérebro.
Megan Thee Stallion e sua mãe, Holly
Imagem: Instagram/Reprodução
Continua depois da publicidade
Na universidade
Além da carreira na música, por influência da mãe, Megan também estuda istração de Saúde na Texas Southern University. Ela ainda não se formou, mas planeja abrir um lar para cuidado de idosos quando conseguir a graduação.
Viral no TikTok
Apesar de ter emplacado o hit "Hot Girl Summer", parceria com Nicki Minaj, em 2019, foi no ano ado que Megan realmente estourou após viralizar no TikTok. Sua música "Savage" foi usada num desafio de dança e virou febre ao redor do mundo.
Megan sempre foi fã devota de Beyoncé, que também cresceu na cidade de Houston como ela. A diva foi convidada para o remix de "Savage" que abocanhou dois Grammys ontem. Megan ainda se apresentou ao lado de Cardi B com o sucesso "WAP", uma das faixas de maior êxito de 2020.
Beyoncé e Megan Thee Stallion
Imagem: Kevin Winter/Getty Images
Continua depois da publicidade
Primeiro álbum
No meio da pandemia, Megan resolveu trazer boas notícias ao público. "Good News", seu álbum de estreia, foi lançado em novembro e nem chegou a concorrer a esta edição do Grammy. Será que tem mais prêmio vindo aí em 2022?
Atentado
Em julho do ano ado, Megan precisou ar por uma cirurgia para retirar balas de revólver do corpo. A rapper foi vítima de um ataque de outro rapper, Tory Lanez, que ganhou uma ordem de restrição para não se aproximar mais dela e ainda pode ser condenado a 22 anos de prisão.
Mulheres negras são sempre desrespeitadas. Eu fui vítima de um ato de violência por um homem. Depois de uma festa, levei dois tiros enquanto tentava me afastar dele. Não estávamos num relacionamento. Fiquei chocada de parar ali.
disse Megan, em uma carta ao The New York Times
Continua depois da publicidade
Estilo ousado
Megan é conhecida por suas letras sensuais e explícitas, além dos inúmeros memes e frases de efeito que usa, como "hot girl shit" (algo como "coisa de garota gostosa"), em suas músicas. Ela foi somente a segunda rapper mulher a vencer o Grammy de Artista Revelação na história.
Não é só sobre ser sexy. É sobre ter confiança e ser dona da própria sexualidade. comemorou Megan, em papo com a "Pitchfork"
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.