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

Diogo Schelp

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

A um ano de reeleição, Bolsonaro é o mais impopular dos presidentes

21.set.2021 - O presidente Jair Bolsonaro (sem partido), durante viagem a Nova York para a 76ª Assembleia-Geral da ONU - Stephen Yang/Reuters
21.set.2021 - O presidente Jair Bolsonaro (sem partido), durante viagem a Nova York para a 76ª Assembleia-Geral da ONU Imagem: Stephen Yang/Reuters

Colunista do UOL

26/09/2021 08h39

Tem razão o presidente Jair Bolsonaro quando ele diz, em entrevista à revista Veja desta semana, que "pesquisa é uma coisa, realidade é outra". Ainda mais sondagens de intenção de voto feitas a um ano ou mais das eleições, como as que mostram o ex-presidente Lula muito à frente na disputa em um eventual primeiro turno.

Muita coisa pode mudar o comportamento do eleitor nesse período, mas as pesquisas, tanto eleitorais como de popularidade, são, sim, um termômetro do momento que podem apontar uma tendência futura.

Quando se analisa a questão pelo ângulo da aprovação do governo, por exemplo, descobre-se que Bolsonaro tem uma situação pior do que todos os outros presidentes brasileiros que buscaram a reeleição desde a redemocratização, há mais de 30 anos.

Todos os que tiveram a chance de tentar, aliás, foram bem-sucedidos. Será que essa tradição política será quebrada com Bolsonaro?

Na última pesquisa Datafolha, divulgada há duas semanas, apenas 22% dos entrevistados avaliavam o governo de Bolsonaro como ótimo ou bom. Por sua vez, Dilma Rousseff, mais ou menos no mesmo estágio do primeiro mandato, tinha uma aprovação de 36%. Lula tinha 35% e Fernando Henrique Cardoso, 39%.

Ou seja, todos os últimos presidentes que se reelegeram tinham, a pouco mais de um ano do pleito, uma avaliação positiva de mais de um terço da população. Isso permitiu que todos chegassem como favoritos nas urnas, mesmo quando venceram por uma margem pequena, como ocorreu com Dilma Rousseff.

Bolsonaro tem a aprovação de mais ou menos um quarto dos entrevistados, apenas. Isso mostra o quanto o presidente precisa recuperar de popularidade para conseguir ser efetivamente competitivo em 2022.

Seu apoio está cada vez mais limitado à parcela da população ideologicamente alinhada a ele. Por enquanto, isso é o suficiente para chegar ao segundo turno — principalmente se o centro político continuar pulverizado em diversos candidatos. Mas, para o segundo turno, é o prenúncio de um vexame eleitoral.