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

Crivella atribui rejeição à crise e mira votos de Benedita no 2º turno

Marcelo Crivella (Republicanos) enfrentará Eduardo Paes (DEM) no segundo turno do Rio - Gabriela Biló/Estadão Conteúdo
Marcelo Crivella (Republicanos) enfrentará Eduardo Paes (DEM) no segundo turno do Rio Imagem: Gabriela Biló/Estadão Conteúdo

Herculano Barreto Filho

Do UOL, no Rio

15/11/2020 23h11

O prefeito Marcelo Crivella (Republicanos) atribui o alto índice de rejeição nas pesquisas à crise econômica no Rio de Janeiro, projeta o segundo turno com o ex-prefeito Eduardo Paes (DEM) e mira eleitores da petista Benedita da Silva, que também é evangélica, para buscar a reeleição.

Com 95,19% de apuração das urnas, ele aparece no segundo turno com 21,86% dos votos válidos, atrás de Paes (37%). A pesquisa de boca de urna já apontava um segundo turno entre os dois. Sob forte esquema de segurança, Crivella chegou por volta das 21h15 de hoje ao principal comitê de campanha, em um prédio comercial de Jacarepaguá, na Zona Oeste do Rio, mas remarcou nova entrevista para amanhã de manhã, após o avanço da apuração. Quando deixou o local, havia apenas 30% da apuração.

"Esses votos que vocês dizem ser de esquerda têm uma grande parcela da área popular, que sempre votou com o Crivella. Há uma grande quantidade de evangélicos que votaram em Benedita. É possível que esses votos venham conosco", disse Crivella ao ser questionado se projetava receber votos da esquerda no segundo turno.

Ele ainda fez ataques indiretos ao adversário político, que responde na Justiça eleitoral por crimes como corrupção iva, lavagem de dinheiro e falsidade ideológica eleitoral por caixa dois na campanha à reeleição de 2012.

"A minha rejeição é por causa da gestão, o que é normal, sobretudo em um período de crise. Não é porque eu sou corrupto. Não sou réu em nada, diferente de outros candidatos", disse.

Entretanto, o prefeito foi condenado pelo TRE-RJ (Tribunal Regional Eleitoral do Rio) em setembro por abuso de poder político e conduta vedada, o que o deixou inelegível até 2026 — mas obteve liminar que suspendeu a decisão. Ele também foi alvo de operação do MP-RJ (Ministério Público do Rio) contra o suposto "QG da Propina" e sofreu desgaste em razão do episódio conhecido como "Guardiões de Crivella".

Crivella ainda vê uma mudança de panorama no segundo turno. "É uma nova eleição e um novo debate", projetou.

O prefeito do Rio votou por volta das 8h50 acompanhado pela esposa Sylvia Jane e o filho Marcelo na escola municipal Sérgio Buarque de Holanda, na Barra da Tijuca. Em seguida, foi para casa, no mesmo bairro. Às 18h, foi a um culto na Igreja Universal do Reino de Deus da Barra, antes de ir ao comitê de campanha.