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

Após onda em 2018, bolsonarismo sai derrotado em maiores colégios do RJ

Flávio Bolsonaro em vídeo com Charlles Batista (Republicanos), candidato derrotado à Prefeitura de São João de Meriti - Reprodução/ Instagram
Flávio Bolsonaro em vídeo com Charlles Batista (Republicanos), candidato derrotado à Prefeitura de São João de Meriti Imagem: Reprodução/ Instagram

Igor Mello

Do UOL, no Rio

16/11/2020 04h00

Depois de o presidente Jair Bolsonaro (sem partido) ter vencido com larga margem em 2018, candidatos bolsonaristas fracassaram nos maiores colégios eleitorais do Rio. Nas dez maiores cidades fora da capital fluminense, em apenas uma o candidato apoiado pelo clã Bolsonaro ou por seus aliados venceu e em nenhuma delas ou para o segundo turno.

Jair Bolsonaro teve votações superiores a 60% dos votos válidos no 2º turno contra Fernando Haddad (PT) em quase todas as grandes cidades do estado em 2018. Nesta eleição, o presidente apoiou na capital o prefeito Marcelo Crivella (Republicanos), que chega em segundo lugar no 2º turno para disputa contra o ex-prefeito Eduardo Paes (DEM).

Fora da capital, o desempenho dos bolsonaristas foi pior. Em São Gonçalo, na região metropolitana, segundo maior colégio do estado, os aliados do clã Bolsonaro decidiram apoiar o ex-deputado federal Roberto Sales (PSD). Ele teve apenas 2,5% dos votos, ficando em 6º lugar. De quebra, viu o PT liderar a disputa com Dimas Gadelha.

Em Nova Iguaçu, terceiro maior colégio, Rogério Lisboa (PP), atual prefeito, se reelegeu em primeiro turno com 62,1% dos votos. Os bolsonaristas apoiaram a deputada federal Rosangela Gomes (Republicanos), ligada à Igreja Universal do Reino de Deus. Ela teve 5,83% dos votos e ficou em 4º lugar.

Um dos poucos candidatos para os quais Flávio Bolsonaro gravou material em apoio, Charlles Batista (Republicanos) ficou fora do segundo turno em São João de Meriti. Alvo de denúncias de extorsão durante a campanha, ele teve 12,61% dos votos, e ficou na 4ª posição. O segundo turno na cidade da Baixada Fluminense será entre Dr. João (DEM) e Leo Vieira (PSC).

Em Niterói, Allan Lyra (PTC), candidato bolsonarista também lançado pelo deputado federal Carlos Jordy (PSL-RJ), teve 9,4% dos votos e ficou atrás de dois candidatos de partidos de esquerda. Axel Grael (PDT) —apoiado pelo prefeito Rodrigo Neves, ex-petista— venceu em primeiro turno com 62,5% dos votos, e o deputado estadual Flávio Serafini ficou em segundo, com 9,83%.

Em Petrópolis, na região serrana, Elias Montes (PSL), apoiado pelo deputado federal bolsonarista Daniel Silveira (PSL), ficou fora do segundo turno. O mesmo ocorreu em Volta Redonda, no Sul Fluminense, com Hermiton (Republicanos), o candidato bolsonarista na cidade.

Em Belford Roxo, Flávio Bolsonaro fez acenos ao atual prefeito, Waguinho (MDB), que se reelegeu em primeiro turno. Contudo, diversos membros da tropa de choque do clã no Rio fizeram campanha para o PM Júnior Cruz (PSD), que registrou 4% dos votos.

Pediram voto para ele Rogéria Bolsonaro —mãe de Flávio, Carlos e Eduardo Bolsonaro e primeira mulher do presidente—, além do deputado federal Carlos Jordy, um dos maiores apoiadores do governo. O deputado estadual Anderson Moraes, ligado a Flávio, também fez campanha para o candidato.

O único aliado da família Bolsonaro que não fracassou nas urnas é Washington Reis (MDB), atual prefeito de Duque de Caxias, na Baixada Fluminense, que tentava a reeleição.

Reis —cacique político tradicional no estado e um dos apoiadores mais próximos do ex-deputado federal Eduardo Cunha— já era considerado favorito no pleito deste ano quando recebeu o apoio de Flávio Bolsonaro. Ele teve 52,5% dos votos e venceu a disputa no primeiro turno no segundo maior colégio eleitoral do estado. Porém, problemas na Justiça Eleitoral podem impedir que tenha um segundo mandato no comando do município.

Em Campos dos Goytacazes, no Norte Fluminense, nenhum candidato tinha apoio explícito de aliados do clã Bolsonaro.