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

Saúde

Sintomas, prevenção e tratamentos para uma vida melhor


Faça em casa: 6 exercícios de Kelly Key para trincar o abdômen

Reprodução Instagram/@oficialkellykey
Imagem: Reprodução Instagram/@oficialkellykey

Giulia Granchi

Do UOL VivaBem, em São Paulo

21/07/2019 12h13

Não é novidade para nenhum seguidor de Kelly Key nas redes sociais que a cantora leva a rotina de treinos a sério.

Entre cuidar dos três filhos, manter uma rotina de beleza e gravar hits para seu novo disco, a dona de "Baba Baby" aposta em circuitos intensos que vão de corrida a Strong By Zumba, modalidade que mistura movimentos de artes marciais, saltos e exercícios funcionais.

E os resultados de tantos exercícios são exibidos em fotos que deixam os fãs babando nos músculos da artista. "Confesso que minha genética sempre foi favorável, mas ter hábitos mais saudáveis me ajudou muito", conta.

A seguir, Anna Kobe, profissional de educação física e treinadora de Strong By Zumba, mostra os exercícios adotados pela cantora para fortalecer e definir os músculos abdominais. Os movimentos não requerem equipamentos e podem ser feitos em qualquer lugar, respeitando as limitações físicas de cada um e preferencialmente com acompanhamento profissional.

1. Abdominal oblíquo

Crunch unilateral - Forever Filmes - Forever Filmes
Imagem: Forever Filmes

Com uma perna estendida e a outra flexionada com o pé apoiado no chão, leve a mão contrária ao encontro da perna que está no alto, tirando levemente o tronco do chão.

2. Abdominal infra

Abdominal infra - Forever Filmes - Forever Filmes
Imagem: Forever Filmes

Mantenha os braços apoiados ao lado do corpo e suba as pernas até tirar o quadril do chão. Em seguida, desça lentamente, contraindo os músculos do abdômen.

3. Russian Twist

Russian Twist - Forever Filmes - Forever Filmes
Imagem: Forever Filmes

Sente-se com o tronco inclinado para trás, em um ângulo de aproximadamente 45 graus. Os joelhos devem estar flexionados e os pés apoiados no chão. Gire o tronco até que a mão toque a lateral do corpo. "Caso queira aumentar o grau de dificuldade deste movimento, eleve os pés e durante a execução e não deixe eles tocarem o chão", sugere a treinadora.

4. Abdominal remador

Abdominal remador - Forever Filmes - Forever Filmes
Imagem: Forever Filmes

Deitado com braços estendidos ao lado da cabeça, levante o tronco e traga os joelhos em direção ao peitoral ao mesmo tempo, fazendo com que os braços abracem as pernas.

5. Abdominal infra unilateral

Abdominal infra unilateral - Forever Filmes - Forever Filmes
Imagem: Forever Filmes

Suba uma perna de cada vez e desça lentamente, sem tirar o quadril do chão em nenhum momento.

6. Crunch com pernas estendidas

Abdominal pernas alternadas - Forever Filmes - Forever Filmes
Imagem: Forever Filmes

Com a barriga para cima, erga as pernas a 90 graus, mantendo leve flexão nos joelhos. Os ombros devem ir em direção à perna, com as mãos ao lado do pescoço. Depois, volte a posição inicial. "O grande truque desse exercício é manter uma das pernas próximas ao chão, sem poder tocá-lo, pois assim o abdômen fica contraído durante toda execução, fortalecendo o core", indica Kobe.