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

Esse conteúdo é antigo

'Gosma alienígena' ameaça vida marinha na Turquia

O "muco marinho" que cobre mar turco é natural em pequena quantidade, mas surto cria cobertor capaz de sufocar vida marinha - Mehmet Caliskan/Reuters
O "muco marinho" que cobre mar turco é natural em pequena quantidade, mas surto cria cobertor capaz de sufocar vida marinha Imagem: Mehmet Caliskan/Reuters

Do UOL, em São Paulo

05/06/2021 13h11Atualizada em 06/06/2021 13h54

Uma espuma grossa e marrom, conhecida na biologia como "muco marinho", cobriu as margens no mar der Marmara, próximo à cidade turca de Istambul, ameaçando destruir a vida marinha no local.

Segundo o jornal The Guardian, o muco, que acontece naturalmente nas águas salgadas, foi documentado pela primeira vez no país em 2007, quando também foi visto em parte da Grécia. Mas o atual "surto" da substância é o maior já registrado.

Segundo especialistas consultados pelo veículo britânico, a situação fora de controle foi causada pela combinação de poluição e aquecimento global, já que ambos os fatores servem de alimento para a proliferação das algas responsáveis por produzir o muco

O material, uma "sopa" de matéria orgânica, geralmente não é prejudicial, mas em grande quantidade pode atrair vírus e bactérias e se tornar um cobertor que sufoca a vida marinha abaixo dele.

"Claro que afeta nosso trabalho", disse o pescador Mahsum Daga, de 42 anos, em entrevista ao Guardian. "Sabe o que isso faz com mariscos? Quando eles abrem (as conchas), não conseguem mais fechar porque isso (o muco) fica no caminho. Todos os caramujos marinhos daqui estão mortos", concluiu.

Em vídeo produzido pela CNN Internacional, biólogos mergulharam no mar turco para mostrar a agonia das criaturas marinhas. Um deles avistou esponjas mortas e, ao esfregar o organismo, mostrou uma grande quantidade de muco se desprendendo.

Apesar de o fenômeno não ser inédito, a equipe local declarou ao veículo americano que essa é a primeira vez que a espuma ameaça a vida marinha na região, que nos últimos 15 anos viu o mar esquentar dois graus celsius.

Especialistas entrevistados pela CNN Internacional destacaram que o problema não é exclusivo da Turquia, com o muco sendo registrado no Mar Negro e Mediterrâneo.

"Claro que nós nos sentimos muito mal. Por que durante a nossa infância esse ecossistema era rico, mesmo 1 ano atrás, ele era saudável, mas agora é ruim", afirmou Baris Ozalp, professor de biologia marinha na Çanakkale Onsekiz Mart University.