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

Neymar dá spoiler de 'Homem-Aranha 3' no Instagram e depois apaga vídeo

Peter enfrenta Doutor Octopus em "Homem-Aranha: Sem Volta Para Casa" - Divulgação/Sony/Marvel
Peter enfrenta Doutor Octopus em "Homem-Aranha: Sem Volta Para Casa" Imagem: Divulgação/Sony/Marvel

De Splash, em São Paulo

16/12/2021 21h13Atualizada em 16/12/2021 21h26

O jogador Neymar, que tem 166 milhões de seguidores no Instagram, não se controlou e postou um Stories na noite de hoje com um mega spoiler de "Homem-Aranha: Sem Volta para Casa". Em seguida, o vídeo foi apagado.

Vale ressaltar que a atitude de Neymar não é indicada, pelo contrário. Foi pedido da própria Marvel para que não tivessem spoilers sobre o filme para não estragar a experiência dos fãs.

Saiba o que Neymar revelou sobre o novo filme da Marvel.

Alerta de Spoiler - Arte UOL - Arte UOL
Alerta de Spoiler
Imagem: Arte UOL

Neymar registrou em vídeo o momento em que Tobey MaGuire, Andrew Garfield e Tom Holland aparecem juntos em cena. "Três gerações de Homem-Aranha", escreveu o craque do PSG.

O vídeo foi apagado após 1 hora, e Neymar deixou apenas uma foto de Tom Holland como o herói da Marvel.

Veja abaixo a cena compartilhada por Neymar, que caiu no Twitter — mas não esqueça do spoiler:

Contexto

Quando o feitiço do Doutor Estranho sai do controle no novo filme do Homem-Aranha, todas as pessoas do multiverso que sabem que Peter é o Homem-Aranha acabam sendo atraídas para o universo de "Sem Volta para Casa". Ou seja, além dos vilões, os outros Peter Parkers também vão parar nesta realidade.

Os momentos em que os três se encontram são recheados de surpresas e interações divertidas, e os dois mais velhos dão conselhos para o Peter de Tom Holland, consideravelmente mais novo e diante de um inevitável amadurecimento emocional no longa.

Algumas das cenas mais engraças e impactantes do filme estão justamente na dinâmica entre os três, e alguns diálogos prometem conquistar os fãs do Cabeça-de-Teia e os saudosos da trilogia de Sam Raimi, estrelada por Maguire, e de "O Espetacular Homem-Aranha", com Andrew Garfield.

Além deles, os já anteriormente confirmados Doutor Octopus (Alfred Molina), Duende Verde (Willem Dafoe), Electro (Jamie Foxx), Lagarto (Rhys Ifans) e Homem-Areia (Thomas Haden Church) são os vilões que dão trabalho ao trio de Peter Parkers.