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

Vini e Alex têm DR após tretas e acusações de homofobia

A Fazenda 2022: Vini e Alex tem DR na tarde de hoje após tretas - Reprodução/PlayPlus
A Fazenda 2022: Vini e Alex tem DR na tarde de hoje após tretas Imagem: Reprodução/PlayPlus

Colaboração para Splash, em São Paulo

21/09/2022 18h08Atualizada em 21/09/2022 18h13

Depois de uma primeira semana tumultuada e um bate-boca durante a formação da primeira roça, Vini e Alex conversaram sobre seus desentendimentos no final da tarde de hoje em "A Fazenda 2022" (RecordTV).

O ex-De Férias com o Ex voltou a afirmar que não acredita que tenha sido homofóbico ao chamar Alex de gazela, mas que sente muito por ter trazido um termo pejorativo e se arrepende.

"Eu falei gazela porque leão caça gazela. No meu contexto. Mas traz uma coisa pejorativa no mundo real, Ok. [...] Eu conversando com a Ingrid que caiu a ficha disso", disse Vini.

Vini e Alex conversaram também sobre a situação no quarto, após a primeira festa.

"Você subiu na cama com um cabide na mão. Você lembra do que você fez?", perguntou Vini.

"Bati na cama", disse Alex.

"A que distância de mim?", perguntou Vini.

"Então, ação e reação. Por uma ação sua, que me deu quase uma raquetada. Eu senti o vento. Se você me acerta, eu tinha te batido e nós dois seríamos expulsos", disse Vini.

Alex argumentou que como não bateu, não importava e disse que o fato foi uma reação a Vini tê-lo chamado de venenoso.

"Você quase me acertou uma raquetada na cara e não me pediu desculpa depois", insistiu Vini.

No fim, Alex pediu desculpas.

"Mas se você pensasse duas vezes antes de me chamar de venenoso, não tinha acontecido. Você entende?", alfinetou Alex, porém.

A Fazenda 2022: Quem deve se livrar da roça e virar o fazendeiro da semana?

Enquete encerrada

Total de 3598 votos
42,80%
Antonio Chahestian/Record TV