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

MMA


Ex-UFC, Paige VanZant lança site pago com conteúdo exclusivo para os fãs

Paige VanZant lucra com anúncios em seu perfil no Instagram e agora vai apostar em outra plataforma - Reprodução/Instagram
Paige VanZant lucra com anúncios em seu perfil no Instagram e agora vai apostar em outra plataforma Imagem: Reprodução/Instagram

Ag. Fight

Ag. Fight

05/02/2021 16h52

Prestes a fazer sua estreia no Bare Knuckle FC, Paige VanZant está dando os os iniciais também em outra empreitada profissional, esta não diretamente ligada ao mundo das lutas. Uma das lutadoras mais populares da história dos esportes de combate, tanto pelo talento como pela sua beleza, a ex-atleta do UFC há algum tempo lucra através da sua imagem, mas, ao que parece, agora está disposta a levar essa atividade a um outro nível.

A lutadora, que encara Britain Hart nesta sexta-feira (5), em seu debute no evento de boxe sem luvas 'Bare Knuckle FC', lançou um site pago para seus fãs, com a promessa aos s de o a conteúdos exclusivos sobre os bastidores da vida profissional e pessoal da atleta. O 'PaigeFanZant.com' chega na internet após constantes pedidos dos seguidores da americana para que ela criasse uma página na plataforma 'OnlyFans', bastante utilizada por modelos para comercializar conteúdos sensuais.

A lutadora já se aventurava pelo mundo do conteúdo sensual há algum tempo, inclusive publicando imagens bastante ousadas em sua conta oficial no 'Instagram', tanto sozinha como acompanhada pelo marido, o também lutador Austin Vanderford, atleta do Bellator. Resta saber até que ponto VanZant estará disposta a se expor na nova empreitada.

Vale lembrar que no final de sua trajetória no UFC, Paige, ao reclamar dos baixos salários pagos pela organização, revelou que conseguia um retorno financeiro maior com a venda de sua imagem - através de publicidades feitas nas redes sociais - do que nas lutas que fazia pela principal entidade de MMA do planeta. Atualmente, a americana conta com mais de 2,7 milhões de seguidores em sua conta oficial no 'Instagram'.