;(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; // 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(); })();
Topo
Notícias

Sucuri é gravada 'descansando' após engolir presa em rio de MS; veja vídeo

do UOL

Do UOL, em São Paulo, e Colaboração para o UOL, em Santos

28/05/2025 10h45Atualizada em 28/05/2025 10h45

O momento em que uma sucuri descansa após uma refeição às margens de um rio em Mato Grosso do Sul foi gravado por um guia.

O que aconteceu

Animal foi encontrado no rio Sucuriú, perto da cidade de Inocência (MS), durante um eio turístico. As imagens foram feitas no domingo por Lucas Cabanha, que organiza eios de pesca esportiva na região.

Guia encontrou outra cobra em situação semelhante seis meses antes. Lucas explicou ao UOL que tinha acabado de contar aos turistas que seu primeiro encontro com uma sucuri aconteceu naquele ponto do rio. "À medida que nos aproximávamos, para minha surpresa, avistei novamente uma enorme sucuri entre a vegetação", afirmou, destacando que a cobra era menor do que a vista no fim de 2024.

Camuflagem confundiu turistas e alguns pensaram que a sucuri estava morta. Lucas explicou que eles se aproximaram com cautela para poder ver o animal.

Os turistas foram orientados a fazer silêncio para preservar a cobra. "Quando são ameaçadas, essas serpentes podem até regurgitar a presa para facilitar a fuga, o que não queríamos provocar", afirmou.

Momento da digestão é de vulnerabilidade para a sucuri

A digestão das sucuris é um processo complexo e demorado, que deixa as cobras com movimento limitado. O processo pode levar de três a quatro semanas, dependendo do tamanho da presa. Isso faz com que elas enfrentem riscos de serem atacadas por outros animais ou molestadas por humanos, o que pode obrigá-las a vomitar o animal para fugir.

Sucuris podem chegar a seis metros de comprimento e pesar até 100 quilos. Segundo o biólogo e doutor em medicina tropical Cláudio Machado, sucuris são serpentes da família boidae, têm mandíbula flexível e pele elástica que permitem engolir grandes presas.

A mandíbula flexível da sucuri permite abrir a boca em até 180 graus para engolir grandes presas. [...] Ela pode demorar de três a quatro semanas para digerir completamente uma presa grande como uma capivara
Cláudio Machado, biólogo

Costelas móveis e pele elástica aumentam o espaço interno do corpo, mas o ambiente influencia na digestão. A pele e os órgãos envolvidos na digestão, como o esôfago e o estômago, podem se dilatar até três vezes mais do que o normal, ajudando a acomodar a presa dentro do corpo da cobra. Em temperaturas mais quentes, a digestão ocorre mais rapidamente.

Notícias