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

'Unicórnio da Sibéria', o animal pré-histórico que chegou a conviver com humanos na Terra

O "unicórnio da Sibéria" vivia em campos e pradarias - W S VAN DER MERWE
O 'unicórnio da Sibéria' vivia em campos e pradarias Imagem: W S VAN DER MERWE

Helen Briggs - Da BBC News

29/11/2018 10h19

Um rinoceronte gigante da Era do Gelo viveu muito mais na Terra do que se imaginava.

Uma espécie de rinoceronte gigante que pode ter sido a origem do mito do unicórnio viveu na terra a até pelo menos 39 mil anos atrás - muito mais tempo do que se pensava.

Conhecido como "unicórnio da Sibéria", o animal tinha um longo chifre no nariz e vivia nas pradarias da Eurásia, a massa de terra que engloba os continentes europeu e asiático.

Leia mais:

Novas evidências mostram que a espécie acabou extinta pois tinha hábitos de alimentação muito s.

Cientistas dizem que saber mais sobre a extinção pode ajudar a salvar os rinocerontes que ainda existem no planeta.

Rinocerontes estão especialmente em perigo pois são muito seletivos em relação ao seu habitat, explica Adrian Lister, professor do Museu de História Natural de Londres e um dos autores do estudo.

"Qualquer mudança em seu ambiente natural é um perigo para eles", diz Lister à BBC News. "E, é claro, o que também aprendemos com esse registro fóssil é que uma vez que a espécie vai embora, não há como recuperá-la."

Pesando até quatro toneladas, com um enorme chife na cabeça, o "unicórnio da Sibéria" chegou a coexistir com os seres humanos modernos até 39 mil anos atrás.

Esqueleto do mamífero no Museu de Stavropol - IGOR DORONIN - IGOR DORONIN
Esqueleto do mamífero no Museu de Stavropol
Imagem: IGOR DORONIN

O que sabemos sobre o rinoceronte ancestral?

Antes das novas descobertas, acreditava-se que a espécie, cujo nome oficial é Elasmotherium sibericum, tinha sido extinta há cerca de 200 mil ou 100 mil anos.

No entanto, uma nova pesquisa com datação de carbono de 23 espécimes fossilizados, pesquisadores descobriram que o gigante da Era do Gelo na verdade sobreviveu no leste da Europa e na Ásia Central até mais recentemente.

Os cientistas também isolaram o DNA do animal pela primeira vez, mostrando que a espécie se diferenciou das que incluem os atuais rinocerontes há cerca de 40 milhões de anos.

A extinção do bicho marca o fim de um grupo inteiro de rinocerontes.

Por que ele foi extinto?

O estudo também analisou os dentes do animal, confirmando que ele pastava em gramas duras e secas.

"Ele era como um cortador de grama pré-histórico", afirma Lister.

O rinoceronte se especializou em um tipo de dieta que pode ter causado sua derrocada. Conforme a Terra esquentou e começou a sair da Era do Gelo, há cerca de 40 mil anos, os campos começaram a diminuir, restringindo a pastagem para a espécie, provavelmente levando o animal à extinção.

Centenas de espécies de grandes mamíferos desapareceram depois do fim da última Era do Gelo, devido à mudanças climáticas, perda de vegetação e caça humana.

O que ele nos diz sobre o destino dos rinocerontes modernos?

Hoje há apenas cinco espécies de rinocerontes restantes. Poucos animais sobrevivem fora de reservas e parques nacionais devido à caça ilegal e à perda da habitat durante muitas décadas.

Os caçadores matam rinocerontes ilegalmente, retiram apenas os chifres e em seguida abandonam o corpo do animal abatido. O chifre do rinoceronte é cobiçado por caçadores pois é utilizado em várias receitas da medicina tradicional chinesa no tratamento de doenças reumáticas.

Ao estudar rinocerontes fossilizados, cientistas podem aprender mais sobre o destino de muitas espécies pré-históricas que um dia vagavam pelo planeta - e sobre como elas se adaptaram à mudança climática e à ação humana.

Da onde vem o mito dos unicórnios?

Lendas sobre o unicórnio, um quadrúpede com um único longo chifre na testa, fazem parte de diversas culturas há milênios.

Há quem defenda que o chifre do unicórnio pode ser a base do mito sobre esses seres, mas ele também pode ser derivado de outros animais - como o narval, que tem um 'chifre' alongado (e na verdade é um dente canino comprido) retorcido.