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

Guerra da Rússia-Ucrânia

Notícias do conflito entre Rússia e Ucrânia


Esse conteúdo é antigo

Rússia tomou aeroporto militar e usina de Chernobyl, informa Ucrânia

Do UOL, em São Paulo

24/02/2022 15h48Atualizada em 24/02/2022 19h08

A Ucrânia perdeu para a Rússia o controle de um aeroporto militar nos arredores da capital Kiev e a usina nuclear de Chernobyl, informou o ministro-adjunto do interior Anton Geraschenko.

De acordo com a autoridade, a base de Gostomel agora está nas mãos dos militares russos poucas horas depois do início dos conflitos no local.

Mapa Ucrania - Arte/ UOL - Arte/ UOL
Imagem: Arte/ UOL

Mais cedo, vídeos publicados nas redes sociais mostravam helicópteros russos disparando mísseis contra a instalação. Segundo guardas da fronteira ucraniana, três dessas naves teriam sido derrubadas, mas não foi o suficiente para conter as tropas adversárias.

Alexander Kovtonenko, um civil de 30 anos que mora perto do local, disse que dois aviões de guerra dispararam mísseis contra as tropas ucranianas. "Depois houve tiros. Durou três horas", contou à agência AFP. "Mais tarde, mais três aviões chegaram e o tiroteio recomeçou", acrescentou.

O aeroporto de Gostomel, próximo ao aeroporto de Antonov, está localizado ao norte de Kiev e por enquanto é o local mais próximo da capital que as forças russas chegaram desde o início da invasão.

A Rússia começou o ataque ao país vizinho na manhã de hoje (madrugada no horário de Brasília), e ao menos 67 pessoas já foram mortas, entre civis e militares, de acordo com autoridades da Ucrânia.

Acompanhe a cobertura completa do conflito na Ucrânia no UOL News:

Usina de Chernobyl

A usina nuclear de Chernobyl também foi capturada pelos militares da Rússia, de acordo com um conselheiro do gabinete presidencial da Ucrânia, Mykhailo Podolyak.

"É impossível dizer se a usina nuclear de Chernobyl está segura após um ataque totalmente sem sentido dos russos", disse. "Essa é uma das ameaças mais sérias na Europa agora".

Na tarde de hoje, veículos militares russos foram avistados no local, de acordo com vídeos publicados em redes sociais.

O presidente da Ucrânia, Volodymyr Zelensky, também denunciou a intenção dos militares russos, após a informação de que tropas russas vindas de Belarus entraram numa área próxima à antiga usina.

Segundo Zelenskiy, as forças ucranianas travam um combate para evitar que tropas da Rússia capturem Chernobyl, que está localizada a 120 km de Kiev, capital da Ucrânia.

Autoridades da Ucrânia relatam combates perto do depósito de resíduos nucleares da central de Chernobyl.

Na madrugada de hoje, Vladimir Putin autorizou a invasão contra a Ucrânia. Há ataques por terra, ar e mar em todo o país. Partes da região ucraniana de Kherson, no sul do país, não estão mais sob controle de Kiev, itiu a istração regional.

"As forças de ocupação russas estão tentando capturar Chernobyl. Nossos defensores estão dando suas vidas para que a tragédia de 1986 não se repita", escreveu Zelensky. "Esta é uma declaração de guerra contra toda a Europa".

*Com AFP