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

Eleições 2020: Seis capitais reelegem prefeitos

A partir da esq., Rafael Greca, em Curitiba, Gean Loureiro, em Florianópolis, e Alexandre Kalil, em BH, foram reeleitos - Arte/UOL
A partir da esq., Rafael Greca, em Curitiba, Gean Loureiro, em Florianópolis, e Alexandre Kalil, em BH, foram reeleitos Imagem: Arte/UOL

Fabiana Maranhão

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

16/11/2020 00h08

Prefeitos de seis capitais brasileiras, que se candidataram à reeleição, vão continuar no comando do Executivo municipal pelos próximos quatro anos.

Foram reeleitos os prefeitos de Belo Horizonte, Campo Grande, Curitiba, Florianópolis, Natal e Palmas.

Ex-presidente do Atlético em BH

Atual prefeito de Belo Horizonte, Alexandre Kalil (PSD) confirmou seu favoritismo e foi reeleito em primeiro turno para mais quatro anos à frente da prefeitura da capital de Minas Gerais. Kalil obteve mais de 63% dos votos.

Empresário da construção civil e ex-presidente do time Atlético-MG, Kalil nunca tinha disputado uma eleição até 2016, quando, apostando no discurso da "antipolítica", desbancou no segundo turno o grupo do então senador tucano Aécio Neves.

Reeleito agora, com um alto índice de votos, ele se firma aos 61 anos como um dos principais nomes da política mineira.

Com uma coligação formada por PSD, MDB, DC, PP, PV, PDT, Rede e Avante, Kalil derrotou 14 adversários em uma disputa marcada pela pulverização de candidaturas.

Campo Grande

No Centro-Oeste, Marquinhos Trad (PSD) foi reeleito em Campo Grande. Com 100% das urnas apuradas, Marquinhos teve 52,58% dos votos. O advogado de 56 anos contou com o apoio do governador Reinaldo Azambuja (PSDB).

Sua trajetória na política começou em 2004, quando foi vereador da cidade. Depois, foi deputado estadual em três mandatos consecutivos até que, em 2016, foi eleito prefeito.

Curitiba

Rafael Greca (DEM) venceu novamente em Curitiba. Com 95,12% das urnas apuradas, o atual mandatário tinha 59,77% dos votos.

Será a terceira vez que Greca, 64, comandará a capital paranaense —a primeira foi entre 1993 e 1996, voltando ao cargo em 2016. Desde o início da campanha, Greca demonstrou força política ao construir uma grande coligação, que retirou inúmeros candidatos do certame.

Dessa forma, o atual prefeito conseguiu capitalizar eleitores de um mesmo espectro político e teve mais tempo de televisão do que seus principais adversários, saltando à frente nas pesquisas de opinião.

Florianópolis

O advogado Gean Loureiro (DEM), 48, foi reeleito hoje prefeito de Florianópolis: ele recebeu 53,44% dos votos após a apuração de 100% das urnas na capital catarinense.

O democrata liderava a disputa desde o início e conquistou a maioria dos votos da capital catarinense já no primeiro turno após contrariar o governador do estado Carlos Moisés (PSL) e impor medidas mais restritivas para conter a pandemia do novo coronavírus.

Ele começou sua trajetória na política aos 19 anos, quando se elegeu vereador na capital catarinense. Ele manteve seu cargo no Legislativo municipal por 20 anos, vencendo outras quatro eleições. Em 2014, foi eleito deputado estadual, cargo que deixou em 2016 para concorrer à prefeitura.

Natal

Pela segunda vez consecutiva, Álvaro Dias (PSDB) foi o vencedor em Natal com o apoio de uma ampla coligação, que incluiu PDT, MDB, Avante, PL, Republicanos, Rede, Democratas e PSD. Álvaro Dias liderou as pesquisas de intenção de voto durante todo o período de campanha eleitoral.

Aos 61 anos, é médico e iniciou sua carreira política em 1990, quando foi eleito deputado estadual, cargo que ocupou por cinco mandatos. Em 2002, foi eleito deputado federal. Em 2016, foi eleito vice-prefeito de Natal. Em 2018, assumiu o comando da prefeitura depois que o então prefeito, Carlos Eduardo (PDT), deixou o cargo para disputar o governo do Rio Grande do Norte.

Palmas

Cinthia Ribeiro (PSDB) foi reeleita prefeita de Palmas. Ela continuará seu governo ao lado do vice eleito André Gomes (Avante). A chapa teve o apoio do MDB, Rede, DEM e Patriota. Com 98,73% das urnas apuradas, Cinthia tinha 36,22% dos votos, mas a cidade não tem segundo turno.

Cinthia Ribeiro, 43, é fonoaudióloga e empresária. Foi casada com o senador João Ribeiro (PR-TO), que morreu em 2013. Só então ela começou sua carreira na política partidária. Ela se filiou ao PTN e foi presidente estadual do partido. Foi candidata a vice-governadora do Tocantins em 2014, mas sua chapa perdeu a disputa.

Em 2015, filiou-se ao PSDB e, no ano seguinte, foi eleita vice-prefeita de Palmas ao lado de Carlos Amastha (PSB). Assumiu a prefeitura da capital em 2018, quando Amastha renunciou ao cargo para disputar o governo do estado.