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

Botafogo perde para a Portuguesa-RJ e é eliminado do Campeonato Carioca

Victor Sá, do Botafogo, disputa a bola com defensores da Portuguesa-RJ pelo Campeonato Carioca 2023 - Vitor Silva/Botafogo
Victor Sá, do Botafogo, disputa a bola com defensores da Portuguesa-RJ pelo Campeonato Carioca 2023 Imagem: Vitor Silva/Botafogo

Nicholas Ornelas Barbosa

Colaboração para o UOL, em São Paulo (SP)

08/03/2023 23h11

O Botafogo perdeu por 1 a 0 para a Portuguesa-RJ hoje (8), pela 11ª rodada, e foi eliminado do Campeonato Carioca. O único gol da partida foi marcado por Anderson Rosa.

Com o resultado, o Botafogo ficou na 5ª colocação da Taça Guanabara, com os mesmos 19 pontos. Agora, no segundo turno, os alvinegros vão disputar a Taça Rio, com os times que terminarem entre o 5º e 8º lugar.

A equipe de Luís Castro dependia apenas de si, já que o Volta Redonda empatou por 3 a 3 com o Boavista -- assim, o Tricolor de Aço assegurou sua vaga na próxima fase, somando 20 pontos. Fluminense (campeão da Taça Guanabara), Flamengo (vice) e Vasco (3º) são as outras equipes classificadas para as semifinais do Cariocão.

Os jogadores do Botafogo pareciam pressionados e começaram o jogo com muito nervosismo. As melhores chances da primeira etapa vieram com a Portuguesa, que investiu nos contra-ataques aproveitando diversos erros de e do adversário.

Ainda no intervalo, parte da torcida botafoguense cantou "time sem vergonha" nas arquibancadas do Raulino de Oliveira, devido ao rendimento ruim do time no primeiro tempo. Cantos de protestos contra Luís Castro e John Textor também foram ouvidos.

A situação foi diferente na segunda etapa, com o Botafogo melhor e pressionando mais os visitantes. No entanto, não foi suficiente para alterar o resultado. Estratégicos, os atletas da Lusa não hesitaram em fazer cera.

Torcedores do Botafogo protestam no intervalo da partida contra a Portuguesa-RJ pelo Campeonato Carioca 2023 - Vitor Silva/Botafogo - Vitor Silva/Botafogo
Torcedores do Botafogo protestam no intervalo da partida contra a Portuguesa-RJ pelo Campeonato Carioca 2023
Imagem: Vitor Silva/Botafogo

Gols e melhores lances

Perdeu! Após receber na grande área, sozinho, Emerson Carioca tentou finalizar no contra pé do goleiro, mas a bola foi para fora. O atacante da Lusa ainda teria a chance de tocar para Romarinho, que estava livre na direita.

Salva, Lucas Perri. Anderson Rosa recebeu boa escorada de Emerson Carioca, e cara a cara com Perri finalizou exigindo uma excelente defesa do goleiro.

0x1: De tanto insistir, a Portuguesa abriu o placar. Joazi cruzou para a área, Lucas Silva escorou de cabeça para trás e Anderson Rosa disparou um chute forte no cantinho.

Chance incrível! Carlos Alberto fez boa jogada na direita e finalizou cruzado. Mota tentou espalmar, a bola subiu para trás, e o goleiro se recompôs rapidamente para evitar o gol com outra defesa.

Portuguesa quase amplia! Nos minutos finais de jogo, Willian recebeu na cara de Perri, mas finalizou por cima.

FICHA TÉCNICA

Botafogo 0 x 1 Portuguesa-RJ - 11ª rodada do Campeonato Carioca

Data e horário: 8 de março de 2023, às 21h10 (de Brasília)
Local: Estádio Raulino de Oliveira, em Volta Redonda - Rio de Janeiro
Árbitro: Alexandre Vargas Tavares de Jesus (RJ)
Assistentes: Daniel Parro (RJ) e Marcus Vinicius Machado Araújo (RJ)
Cartões amarelos: Victor Sá (Botafogo); Emerson Carioca, Feitosa e Wellington (Portuguesa)
Cartões vermelhos: Nenhum
Gols: Anderson Rosa (aos 42 minutos do primeiro tempo)

BOTAFOGO: Lucas Perri; Adryelson, Victor Cuesta, Segovia (Hugo); Tchê Tchê, Marlon Freitas (Luis Henrique), Lucas Fernandes (Gabriel Pires), Carlos Alberto, Raí (Lucas Piazon); Victor Sá (JP Galvão) e Matheus Nascimento. Técnico: Luís Castro

PORTUGUESA: Mota; Joazi, Matheus Santos, Lucas Santos, Yuri; Feitosa (Willian), Anderson Rosa (Juninho); João Paulo (Wellington), Romarinho, Lucas Silva (Fernandes); Emerson Carioca (Gilmar). Técnico: Felipe Surian