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

Confusão entre vizinhos termina com árvore podada pela metade na Inglaterra

Homem se irritou com o som dos pássaros e cortou a parte da árvore pertencente ao seu terreno - Reprodução/Youtube/SWNS
Homem se irritou com o som dos pássaros e cortou a parte da árvore pertencente ao seu terreno Imagem: Reprodução/Youtube/SWNS

Colaboração para o UOL, em São Paulo

23/06/2021 16h56

Um homem encontrou uma maneira nada diplomática para encerrar uma discussão que tinha com seu vizinho, na cidade inglesa de Sheffield. Segundo Daily Mail, Graham Lee não estava gostando do barulho dos pássaros que posavam na árvore em seu jardim e, por isso, decidiu podar a parte da árvore que correspondia ao seu terreno.

A poda fez com que o tronco e cerca de 40% das folhas da árvore de 5 metros ficassem intactas apenas no terreno do vizinho, o do Sr. Mistry.

De acordo com uma postagem de Mistry no Reddit, Lee reclamava que as aves estavam fazendo muito barulho.

A primeira medida do morador foi colocar sacos pretos nos galhos, o que não funcionou. Em seguida, ele contratou podadores profissionais para derrubar a parte que lhe pertencia.

"Ficamos absolutamente perturbados. Imploramos e suplicamos para que ele não podasse, mas já estava decidido", disse Mistry, que apesar de tudo, respeita a decisão de Lee.

"Eu acredito que ele tem o direito de cortar qualquer coisa que esteja pendurada em sua propriedade", mas eu me questiono: 'por que depois de 25 anos ele faria isso?'", escreveu o homem.

Ele ainda ressalta que sua relação com Lee sempre foi saudável - pelo menos até o episódio mais recente. "Nunca tivemos problemas com eles (o casal vizinho) antes disso, nos damos bem. Nossos filhos brincavam com os deles quando eram mais novos", esclarece.

Já o vizinho da frente, Brier Close, disse à emissora local Chanel 5 que apenas pôde lamentar quando viu a árvore sem sua metade. "Quando eu vi, eu apenas pensei 'Oh meu Deus, que pena', certamente poderia ter tido outra solução para isso", reclamou.