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

Thiago Silva lamenta fim de ciclo no Brasil: 'maneira trágica e triste'

Thiago Silva conduz a bola durante o jogo entre Brasil e Croácia, pelas quartas de final da Copa 2022 - Lucas Figueiredo/CBF
Thiago Silva conduz a bola durante o jogo entre Brasil e Croácia, pelas quartas de final da Copa 2022 Imagem: Lucas Figueiredo/CBF
Gabriel Carneiro, Danilo Lavieri, Rodrigo Mattos e Pedro Lopes

Do UOL, em Doha (Qatar)

09/12/2022 17h39

Classificação e Jogos

Aos 38 anos, Thiago Silva não deve atuar mais pela seleção brasileira. O capitão vivia a expectativa de levantar o hexa, mas o time de Tite foi eliminado pela Croácia nas quartas de final da Copa do Mundo Qatar 2022.

"Deveria ter sido premiada com o título, mas nem sempre o que a gente quer é a vontade de Deus. A verdade é que aqui se acaba meu ciclo na seleção brasileira, infelizmente dessa maneira trágica e triste. A vida precisa seguir em frente. Preciso encontrar forças nas pessoas que gostam da gente nesse momento. Sei que vai haver muita coisa negativa, pessoas falando mal, mas temos de focar naquilo que mais importa para gente", disse Thiago Silva.

O experiente jogador falou sobre o choro no vestiário e a culpa que caiu nos ombro do jovem atacante jovem Rodrygo, que perdeu o primeiro pênalti.

"Por mais que a gente seja experiente e já tenha vivido muitas vezes essa situação, é bem complicado. A gente tenta procurar ser forte, por mais que por dentro a gente esteja chorando para caramba. O que me deixa mais triste é ter visto o Rodrygo meio que levando a culpa naquele momento. Ele se culpando. Aqui a gente não encontra culpado. Todos nós falhamos hoje, independentemente de quem errou o pênalti. Marquinhos [que errou a quarta cobrança brasileira] é um gigante. Tenho o maior orgulho de ter feito parte desse grupo e infelizmente não consegui ajudar mais. Não teria feito nada de diferente do que fiz até aqui e tenho certeza que eles também não", concluiu o defensor do Chelsea (ING).

Quem deve assumir a seleção brasileira após a saída de Tite?

Enquete encerrada

Total de 4618 votos
32,87%
WANDERSON OLIVEIRA/DIA ESPORTIVO/ESTADÃO CONTEÚDO