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

Satélite dos EUA flagra tropas russas se aproximando de Kiev

Comboio russo se estende por mais de cinco quilômetros em estrada próxima de Kiev, capital da Ucrânia - Maxar Technologies/Divulgação/Reuters
Comboio russo se estende por mais de cinco quilômetros em estrada próxima de Kiev, capital da Ucrânia Imagem: Maxar Technologies/Divulgação/Reuters

Do UOL, em São Paulo

27/02/2022 17h00Atualizada em 27/02/2022 17h50

Imagens de satélite de hoje (27) mostram tropas russas se aproximando de Kiev, capital da Ucrânia. As fotos divulgadas pela Maxar Technologies exibem um comboio se estendendo por mais de cinco quilômetros em uma estrada.

Antes da divulgação das imagens, o prefeito de Kiev, Vitali Klitschko, disse que a cidade estava cercada pelo Exército russo. "Estamos à beira de uma catástrofe humanitária", disse o chefe da capital ucraniana para agência Associated Press.

Informações de veículos internacionais apontam que as forças que se aproximam de Kiev incluem também veículos de abastecimento. Hoje é o quarto dia de invasão russa nas cidades ucranianas.

Em uma mensagem direcionada para a própria população e também para a comunidade internacional, Klitschko pediu que continuem apoiando a Ucrânia e destacou que seu povo "é forte".

Tropas russas tentam fechar o cerco da capital da Ucrânia desde sexta-feira (25) - Maxar Technologies/Divulgação/Reuters - Maxar Technologies/Divulgação/Reuters
Tropas russas tentam fechar o cerco da capital da Ucrânia desde sexta-feira (25)
Imagem: Maxar Technologies/Divulgação/Reuters

"Todo ucraniano tem orgulho de ser independente, orgulho de ser ucraniano e tem orgulho de ter nosso próprio país", completou.

Hoje também o governo da Ucrânia informou que concordou em ir até a fronteira do país com Belarus para negociar um possível cessar-fogo com a Rússia. Segundo o vice-ministro do interior da Ucrânia, Eygeny Yenin, o encontro será realizado na manhã desta segunda-feira (madrugada no Brasil).

Rússia tenta fechar cerco em Kiev desde sexta

As tropas russas tentam desde sexta-feira (25) invadir a capital da Ucrânia. Segundo a CNN Internacional, na madrugada de sábado houve registros de tiros na região próxima à sede do governo.

Cinco explosões foram confirmadas pelo prefeito de Kiev no sábado, e outros ataques parecidos foram reportados nos arredores da capital da Ucrânia. Um prédio residencial foi atingido e deixou 35 pessoas feridas.

Segundo a imprensa local, a prefeitura de Kiev chegou a alertar os moradores que há combates ocorrendo entre russos e ucranianos nas ruas da cidade e recomendou que fiquem em abrigos antibomba.

Mapa Rússia invade a Ucrânia - 26.02.2022 - Arte UOL - Arte UOL
Imagem: Arte UOL