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

Nem todo cão precisa de roupa; use o bom senso para não prejudicar o bicho

Caio Borges/UOL
Imagem: Caio Borges/UOL

Juliana Simon

Do UOL

04/11/2016 07h00

Nos tempos em que cachorros são parte da família, todo mimo é pouco para alguns donos. Mas o excesso de cuidados nem sempre é positivo: no quesito roupinha, por exemplo, o limite entre zelo e exagero pode ser bastante tênue. Afinal, qual é a real necessidade dos animais na hora do "look do dia"?

Entre os especialistas, há unanimidade: ao vestir seu cão, use o bom senso. Não são todos que precisam de roupas e nem o tempo todo. A veterinária Tatiana Saleme aponta que o tremor, a busca por lugares mais quentes e posições encolhidas são bons indícios de que o bichinho necessita de uma proteção extra. Animais com pelos longos ou curtos, mas sem sub pelos (pelagem mais fina, comum em grupos como akita e lulu da pomerânia, responsável por criar uma "manta"), tendem a apresentar mais frio. Entre as raças que merecem atenção estão maltês, yorkshire terrier, daschund e pinsher. 

Por outro lado, cães oriundos de países frios como os huskies, samoiedas, berneses e malamutes têm uma boa camada de gordura corporal e pelos adaptados (com sub pelos), que os protegem naturalmente do frio. Indivíduos dessas raças não precisam usar órios e roupas para enfrentar os dias mais frescos ou mesmo as baixas temperaturas do inverno. 

Calor, alergia e aperto podem incomodar o bichinho. Fique atento aos sinais - Caio Borges/UOL - Caio Borges/UOL
Imagem: Caio Borges/UOL

"Dress code"

"Vejo muitas peças desnecessárias, como vestidos que não esquentam e só servem como enfeite para o bicho. Pode não prejudicar, mas também não tem uso prático", afirma a veterinária Viviane Matiazzo. Esses adereços são um capricho do dono, que deve estar atento às reações do animal: se o cão está desconfortável, não há razão para manter a indumentária. Segundo a especialista, os sinais de que a vestimenta incomoda são coceira, tentativa de tirar a roupa com os dentes, se raspar nas paredes, rolar no chão, ficar muito ofegante sem motivo aparente ou evitar se locomover após ser vestido.

Os veterinários recomendam, ainda, que a roupinha seja retirada todos os dias, pois a permanência da peça pode causar dermatites. Este cuidado é ainda mais necessário para os animais de pelagem longa, que também devem ser escovados diariamente.

Roupinha não é para enfeitar. Bom senso ajuda na hora de vestir seu pet - Caio Borges/UOL - Caio Borges/UOL
Imagem: Caio Borges/UOL

Com que roupa ele vai?

Quanto aos tecidos, em princípio, não há contraindicações e os mais adequados para as roupinhas são os confortáveis como malha de lã, soft e algodão. "A análise é a mesma que se faz para pessoas, é preciso saber se o animal sofre de alguma alergia ou desconforto específico. Tenho um cliente, por exemplo, que ao usar peças de soft se coça muito. Outros podem ficar bastante incomodados com as de lã, por serem muito quentes", pondera Matiazzo. Além da coceira, os proprietários devem se atentar aos sinais citados acima: eles são, muitas vezes, indicadores de alergias. 

Outro ponto a ser observado é o modelo: as roupinhas ideais para animais de pelos longos são as capas, pois não pegam embaixo da axila, o que evita nós. Já para os de pelos curtos, dá para variar entre capinhas e camisetas. De acordo com o veterinário Luiz Eduardo Bagini Lucarts, o mais importante é que a roupa seja fácil de vestir e não tenha botões ou detalhes que possam ser engolidos pelo cão. Também é recomendável evitar zíperes, uma vez que estes podem enganchar em cobertores e trazer risco de sufocamento para o animal, como também ser um incômodo quando o cachorro brinca e se movimenta com saltos. Além disso, a limpeza das peças precisa ser frequente e realizada com sabão neutro.

Fontes: Luiz Eduardo Bagini Lucarts, veterinário do hospital veterinário Pet Care e Presidente da Sociedade Brasileira de Dermatologia Veterinária (SBDV); Tatiana Saleme, veterinária do hospital veterinário Sena Madureira; Viviane Matiazzo, veterinária especialista em dermatologia pela Faculdade de Medicina Veretinária e Zootecnia da Universidade de São Paulo (FMVZ-USP).