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

Animais estão cada vez mais noturnos para evitar os humanos, diz estudo

SPL
Imagem: SPL

Do UOL, em São Paulo

18/10/2019 16h14

Um estudo mostrou que animais que há milhões de anos exercem hábitos diurnos estão cada vez mais trocando o dia pela noite. E a culpa pode ser nossa. Pesquisadores da Universidade de Califórnia, nos Estados Unidos, sugerem que animais de diversos animais de tamanhos e regiões diferentes estão se adequando para evitar a presença humana.

Entre os principais impactos causados pelos humanos na fauna está a redução de espaço disponível para os animais, cada vez mais reduzido. Uma das consequências é que os animais se movem mais lentamente nestas zonas, por isso muitos só saem quando nós estamos dormindo.

O estudo organizou 60 espécies de mamíferos nos cinco continentes, e apontou que, em locais onde existe perturbação humana, os animais têm 1,36 vezes mais atividade noturna.

"Há indícios de que animais de todas as partes estão ajustando seus patrões de atividade diária para evitar os humanos no tempo, já que é cada vez mais difícil para eles nos evitar no espaço", diz a autora principal do estudo, Kaitlyn Gaynor.

"Como as pessoas são mais ativas durante o dia, os animais estão ando para a noite", acrescenta.

Essa mudança pode ser vista tanto no caso de herbívoros ou grandes carnívoros. O padrão se repete também nos mamíferos menores assim como alguns que chegam a pesar mais de 3,5 toneladas, caso do elefante africano.

Um dos pontos principais do estudo publicado na revista Science é que, mesmo em ecossistemas em que o homem não representa uma ameaça, houve um crescimento das atividades noturnas

"Esperávamos encontrar uma tendência de aumento da atividade noturna nas proximidades dos humanos, mas nos surpreendeu a consistência dos resultados. Os animais respondem a todos os tipos de perturbação humana, sem importar se realmente representam uma ameaça direta", acrescentou.

As consequências das mudanças ainda são incertas. Os pesquisadores apontam que uma transformação generalizada e de forma tão rápida pode alterar todo um ecossistema.

"No caso dos predadores não adaptados a caçar de noite, poderia ocorrer um aumento da população dos ungulados que eram suas presas, o que afetaria a disponibilidade de cobertura vegetal, produzindo um efeito em cascata", comentou a pesquisadora Ana Benítez, da Universidade Radboud, da Nijmegen, nos Países Baixos.

A especialista ainda aponta que o caso remete a uma teoria exposta nos anos 1960 pelo biólogo Fritz R. Walther, em que os os animais sempre nos veem como predadores, independe se você seja um caçador ou um amante da natureza.

Para Gaynor, os dados "sugerem que basta a nossa mera presença para interferir nos padrões naturais de conduta".