Connect with us

POLITICA

La prisión de Cristina Kirchner fue el tema central en la cena anual del CARI

Published

on


El Consejo Argentino para las Relaciones Internacionales (CARI), celebró el último martes su cuadragésimo séptimo aniversario con una cena en La Rural. Es su gran velada de gala anual reunió a unos 500 invitados, entre ellos miembros del Gabinete Nacional, el jefe de Gabinete, Guillermo Francos, y el ministro de Salud, Mario Lugones; a funcionarios de las provincias, embajadores, legisladores, académicos y empresarios.

Con Francos, y el presidente del CARI, Francisco de Santibañes como oradores, el principal think tank argentino en política exterior tuvo como rasgo tres situaciones.

Advertisement

Por un lado, que ni el máximo funcionario de gobierno, Francos, pudo esquivar la prisión de Cristina como tema, del que además se hablaba en las mesas. Por el otro, también, la disruptiva a la vez que degradada política exterior actual.

Por cierto, el CARI entregó su premio anual, Embajador Carlos Muñiz a la Excelencia, al director del Organismo Internacional de Energía Atómica, Rafael Grossi, que es diplomático y es argentino. Y es por así decirlo un caso de activa participación argentina en el espacio multilateral, que el gobierno de Javier Milei rechaza.

“No puede ser un momento de felicidad. La detención determina un momento triste de la historia argentina en la que vemos a una dos veces presidente, ex vicepresidente, senadora ser condenada a prisión. Pero lo que sí podemos celebrar es que se demostró que hay una verdadera vigencia de las instituciones de la República”, afirmó Francos sobre el fallo de la Corte Suprema adverso a Cristina Kirchner. Francos remarcó la tranquilidad en las calles, más allá de los puntuales y atomizados disturbios de los manifestantes y del brutal ataque a las instalaciones de TN.

Advertisement
El presidente del CARI, Francisco de Santibañes, con la embajadora británica, Kirsty Hayes. La cena anual del Consejo para las Relaciones Internacionales (CARI) de 2025 contaron con la participación de Guillermo Francos, jefe de Gabinete.

Al mismo tiempo, como siempre, el jefe de Gabinete exhibió diferencias de estilo a los extremos libertarios. De hecho, el propio presidente Javier Milei se pasó retuiteando desde Israel a usuarios que festejaban con insultos la sentencia a prisión contra la ex presidenta, mientras y otros que consideraron que la líder del peronismo-kircherismo irá presa porque «gracias» al gobierno de Milei.

Por otra parte, Francos contestó con una reflexión abierta sobre cómo será la elección del candidato de la Libertad Avanza para competir en las legislativas de octubre, ahora que Cristina K debe ir presa. Si desde el espacio de Santiago Caputo pensaron en un candidato joven y más conocido en las redes sociales que en la calle para competirle a la ex presidenta, Francos dijo que ahora hay tiempo para pensar y reacomodar la estrategia.

Durante la velada, que condujo como siempre la periodista Cristina Pérez, se entregó el Premio Embajador Carlos Muñiz a la Excelencia al actual director general del Organismo Internacional de Energía Atómica (OIEA), Rafael Grossi. Fue en ausencia pero se pasó un video suyo en el que destacó al think tank como una institución referente en el ámbito del análisis y la reflexión en política internacional, y a Carlos Manuel Muñiz como una figura clave de la diplomacia argentina.

Advertisement
El presidente del CARI, Francisco de Santibañes. La cena anual del Consejo para las Relaciones Internacionales (CARI) de 2025 contaron con la participación de Guillermo Francos, jefe de Gabinete.El presidente del CARI, Francisco de Santibañes. La cena anual del Consejo para las Relaciones Internacionales (CARI) de 2025 contaron con la participación de Guillermo Francos, jefe de Gabinete.

“Este reconocimiento honra trayectorias que expresan los valores fundacionales del CARI: independencia de pensamiento, excelencia profesional, vocación multilateral y defensa del interés nacional desde una perspectiva global”, afirmó el presidente del CARI, Francisco de Santibañes. Además sostuvo: “Vivimos en un mundo incierto y complejo, y ese grado de complejidad vuelve indispensable el entendimiento profundo del escenario global”.

A su vez, el Presidente del CARI expresó: “somos una institución de la diplomacia argentina. En este sentido quiero destacar las visitas que recibimos del secretario general de la OCDE, de los cancilleres de Armenia y Chile, del ministro de defensa danés, de funcionarios de los Departamentos de Estado y Defensa de los Estados Unidos, delegaciones de China y un gran número de think tanks asiáticos y europeos. Esto ha sido posible gracias al diálogo continuo que mantenemos con las embajadas y las autoridades nacionales, a quienes agradecemos por su compromiso”. Para el caso, es muy notable que el espacio del CARI tiene más actividad internacional que el propio Palacio San Martín.

Santibañes también destacó el trabajo de las 30 comisiones del CARI y remarcó: “lanzamos tres nuevos programas que buscan relacionarnos con el resto de la dirigencia. Un Programa de Publicaciones que entre sus nuevos formatos cuenta con la revista bilingüe ‘Asuntos Globales/Global Affairs’, para brindar una perspectiva argentina a los debates que tienen lugar en el mundo. El Programa sobre Diplomacia Parlamentaria, gracias al cual hoy tenemos una relación más fluida con los legisladores nacionales. Y finalmente el Programa de Diplomacia Público-Privada, que nos ha permitido fortalecer los vínculos del CARI con el servicio exterior de la Nación y el sector privado”.

Para el caso, el CARI tiene distintos grupos, el más recientemente creado es el Comité de Organismos Internacionales y G20, que conduce el hasta recientemente embajador ante Uruguay, Martín García Moritán. El otro es el de los BRICS -espacio al que renunció Milei- y que tiene a su cargo el ahora ex embajador ante la India, Hugo Gobbi, quien decidió jubilarse del ministerio ante el oscuro panorama actual.

Advertisement

El punto es que cuando hablaban las autoridades los invitados los invitados comentaban la paradoja de que el embajador Muñiz fuera el creador del Instituto Nacional del Servicio Exterior (ISEN) que ahora el presidente Milei y su canciller Gerardo Werthein lo busquen degradar.

Para el caso, este año, el ISEN no tomará nuevos alumnos en 2025 y se suspendieron los cursos del año, lo que para muchos es una manera de empezar a destruirlo. Milei considera a los diplomáticos una «casta» con «privilegios». Hoy, la diplomacia está paralizada, y más de una decena de funcionarios de carrera de la gestión de Diana Mondino, están sumariados por cumplir sus instrucciones en lo que fue el voto a Cuba ante las Naciones Unidas, ente ellos el vicecanciller Eduardo Bustamante.

Por otro lado, la diplomacia local está fuertemente golpeada con la escasa participación que le dan en la Rosada en la toma de decisiones internacionales. Algo notablemente distinto al pasado con gobiernos de izquierda o derecha. En ese sentido, se comentaba el martes

Advertisement

En representación de Werthein, el martes estuvieron el vicecanciller Eduardo Bustamante, el jefe de Gabinete, Ricardo Lachterman, y el embajador Fernando Brun, quien volvió de Alemania y podría ser nombrado como nuevo Secretario de Relaciones Económicas Internacionales o en lugar del propio Bustamante. Pero los cambios en la Cancillería actual se cocinan a fuego lento. En representación del jefe de Gobierno de la Ciudad, estuvo el secretario genera y de asuntos internacionales, Fulvio Pompeo, a cargo de la Fundación Argentina Global.

Fundado en 1978 por el embajador Carlos Manuel Muñiz, el CARI se consolidó como un centro de pensamiento plural, independiente y riguroso, orientado al estudio de la política exterior argentina y su inserción internacional. Desde entonces, ha fomentado el diálogo intergeneracional, la producción académica y la proyección estratégica del país.

A lo largo de su historia, la presidencia del CARI ha estado a cargo de destacadas figuras: Carlos Manuel Muñiz (1978–2007), Adalberto Rodríguez Giavarini (2007–2020), José Octavio Bordón (2020–2023), Francisco de Santibañes (desde octubre de 2023)

Advertisement

Cristina Kirchner

POLITICA

Ritondo habló sobre la situación de Espert: “La explicación no alcanzó”

Published

on



El diputado nacional Cristian Ritondo de Propuesta Republicana (Pro), y aliado de La Libertad Avanza (LLA), dijo que la explicación de José Luis Espert sobre si recibió o no dinero de un narcotraficante “no alcanzó”. Una investigación de confirmó que el candidato del oficialismo recibió depósitos de empresas relacionadas a Fred Machado por 200.000 dólares y eso consta en un documento del Bank of America.

En este sentido, en diálogo con TN, Ritondo sostuvo que sin esas explicaciones “no se puede hacer campaña”. Sin embargo, apuntó contra el kirchnerismo de estar detrás de “una operación”. “Han logrado romper con un esquema donde no estamos discutiendo la economía y el narcotráfico”, apuntó.

Advertisement

La explicación de Espert no alcanzó. Deja en la nebulosa una pregunta que repiten los periodistas y que tiene que contestar. Hoy Guillermo Francos y Patricia Bullrich le pidieron que aclare un poco más. Es cierto que en un proceso electoral hay muchas operaciones, pero también es cierto que hay momentos en los que hay que dar explicaciones y seguir con la campaña”, afirmó Ritondo.

En tanto, continuó: “En otros momentos podés esperar y dar explicaciones cuando quieras, pero cuando estás en campaña y sos candidato, el reflejo tiene que estar en contestar rápido y salir del problema. Lógicamente, la respuesta más profunda se la das a la Justicia”.

Además declaró que no tiene por qué creer o no en la honestidad de Espert y sostuvo que “la Justicia lo va a determinar”. “Él tiene que demostrarlo. En lo que yo conozco creo que sí lo es”, dijo pero dejó el asunto en manos judiciales.

Advertisement

Por otra parte, Ritondo explicó que la situación de Espert afecta a la alianza entre LLA y Pro en la recta final de cara a las elecciones nacionales de octubre: “No podés hacer campaña. Si no estuviese este tema, estaríamos discutiendo otras cosas, como el nuevo Código Penal. No podemos discutir el compromiso de Pro de acompañar a La Libertad Avanza”.

Este miércoles, Espert dio una entrevista pero se negó en reiteradas ocasiones a contestar si cobró o no US$200.000 de Fred Machado durante la campaña de 2019, en el marco de una denuncia que salió a la luz por una presentación que hizo el dirigente de Patria Grande, Juan Grabois. “No voy a responder, no le voy a dar el gusto a Grabois, le voy a responder en la Justicia”, señaló en A24, durante una tensa entrevista, en la que le preguntaron varias veces lo mismo y evadió la respuesta con la misma frase.

A su vez, el presidente Javier Milei ratificó la candidatura de Espert como diputado nacional por la provincia de Buenos Aires y acusó una “operación berreta” de parte de la oposición. Aseguró que nunca pensó en aparatarlo y consideró: “Es un refrito de algo que pasó hace seis años”.

Advertisement

Noticia en desarrollo.


José Luis Espert,Una investigación de LA NACION confirmó que el candidato del oficialismo recibió depósitos de empresas relacionadas a Fred Machado por 200.000 dólares y eso consta en un documento del Bank of America,, una presentación que hizo el dirigente de Patria Grande, Juan Grabois,Cristian Ritondo,José Luis Espert,Conforme a,Cristian Ritondo,,Tensión. Qué pasó entre Cristian Ritondo y Silvia Lospennato en el Congreso,,»No te voy a permitir». Así fue el cruce entre Cristian Ritondo y Silvia Lospennato en el Congreso,,Alimentos para las cárceles. Sobreseen al exsecretario de Seguridad echado por Bullrich

Advertisement
Continue Reading

POLITICA

La Justicia confirmó que José Luis Espert viajó 35 veces en aviones vinculados al narco “Fred” Machado

Published

on


La justicia federal corroboró que José Luis Espert utilizó hasta 35 vuelos en aviones ligados al empresario Fred Machado, quien está detenido bajo acusaciones de narcotráfico y lavado. El juez Martínez de Giorgi fue el encargado de constatar la operación de esas aeronaves dentro del marco de la investigación.

El hallazgo contradice versiones previas que hablaban de una única utilización de esas aeronaves. Según Clarín, “en principio, se creía que había sido uno solo”, pero la verificación judicial amplió ese número decisivamente. Esa nueva escala alimenta la sospecha de vínculos irregulares entre Espert y Machado, y refuerza la denuncia presentada por Juan Grabois.

Advertisement

La Nación difundió la primera imagen de Espert con Machado. De izquierda a derecha Nazareno Etchepare, José Luis Espert, Iván Sherman y Fred Machado.

Desde su entorno, Espert admitió conocer a Machado y haber viajado en uno de sus aviones, pero relativizó la acusación: “Obviamente le agradecí, si me llevó en su avión”, señaló al referirse a un viaje en 2019. No obstante, esos vuelos múltiples complican su defensa y multiplican los requerimientos de claridad sobre sus lazos financieros y operativos con el empresario investigado.

Advertisement

La causa en curso ya investiga aportes por US$ 200.000 que habrían sido canalizados por Machado en campañas políticas pasadas, como parte de una denuncia por lavado de activos. La confirmación judicial de las múltiples rutas aéreas gravita ahora como un elemento clave para que la justicia defina si procede una imputación formal mayor o incluso medidas cautelares contra Espert.

La entrada La Justicia confirmó que José Luis Espert viajó 35 veces en aviones vinculados al narco “Fred” Machado se publicó primero en Nexofin.

Aviones,Fred Machado,José Luis Espert,Narcotráfico

Advertisement
Continue Reading

POLITICA

Uno por uno, cómo votaron los senadores el veto de Milei a la ley Garrahan

Published

on



Conteo de Votos y Hemiciclo

Uno por uno, así votaron los senadores el rechazo al veto de la Ley Garrahan

Advertisement

Advertisement


`
: `

Advertisement
foto-senador

`
}

${bloque}

`;
targetContainer.appendChild(card);
}

function createHemicicleSmall(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.small’);
hemicycle.innerHTML = »; // Clear previous content.

Advertisement

const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (from outer to inner)
const seatsPerRow = [21, 18, 16, 12, 7];
const verticalOffset = 0;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;

// Instead of percentage-based rounding, we’ll compute a per-row distribution
// using floor() and then distribute any remaining seats based on the remainders.
let rowSeatCounts = seatsPerRow.map((seatsInRow) => {
// Compute the exact (floating point) allocation for each category.
const exactAfirmativo = (nAfirmativo * seatsInRow) / totalSeats;
const exactNegativo = (nNegativo * seatsInRow) / totalSeats;
const exactAbstencion = (nAbstencion * seatsInRow) / totalSeats;
const exactAusente = (nAusente * seatsInRow) / totalSeats;
// Take floor values.
let rowAfirmativo = Math.floor(exactAfirmativo);
let rowNegativo = Math.floor(exactNegativo);
let rowAbstencion = Math.floor(exactAbstencion);
let rowAusente = Math.floor(exactAusente);
let assigned = rowAfirmativo + rowNegativo + rowAbstencion + rowAusente;
let diff = seatsInRow – assigned;
// Create an array of remainders along with category identifiers.
let remainders = [{
cat: «afirmativo»,
remainder: exactAfirmativo – rowAfirmativo
},
{
cat: «negativo»,
remainder: exactNegativo – rowNegativo
},
{
cat: «abstencion»,
remainder: exactAbstencion – rowAbstencion
},
{
cat: «ausente»,
remainder: exactAusente – rowAusente
}
];
// Sort descending by remainder.
remainders.sort((a, b) => b.remainder – a.remainder);
// Distribute the remaining seats one by one to the categories with the highest remainders.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowAfirmativo++;
break;
case «negativo»:
rowNegativo++;
break;
case «abstencion»:
rowAbstencion++;
break;
case «ausente»:
rowAusente++;
break;
}
diff–;
}
}
return {
afirmativo: rowAfirmativo,
negativo: rowNegativo,
abstencion: rowAbstencion,
ausente: rowAusente
};
});

// Now, using your inverted loop order (columns first, then rows)
const maxSeatsInRow = seatsPerRow[0]; // maximum seats in the outer row

Advertisement

// For each seat position (by column, then row), assign the color based on that row’s distribution.
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // only if this row has a seat at this column
const seatsInThisRow = seatsPerRow[row];
const radius = 170 – row * (30 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);

// For this row, assign colors in order:
// First use available «afirmativo», then «negativo», then «abstencion», then «ausente»
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}
const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}

/* // Set the legend text (sin mostrar Ley Aprobada o no aprobada)
document.querySelector(‘#voto-summary’).innerHTML = `

Advertisement

Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}

Abstención: ${nAbstencion} |
Ausente: ${nAusente}

`; */

/* // — Update Legend —
const leyText = nAfirmativo > nNegativo ? «Ley Aprobada» : «Ley no aprobada»;
const resultsText=»shshs»;
document.querySelector(«#voto-summary»).innerHTML = leyText + resultsText; */

Advertisement

/*
// Set the legend text. Mayoría simple
const leyText = nAfirmativo > nNegativo ? ‘Ley Aprobada’ : ‘Ley no aprobada’;
document.querySelector(‘#voto-summary’).innerHTML = `

Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}

Abstención: ${nAbstencion} |
Ausente: ${nAusente}

` + ‘

Advertisement

‘ + leyText + ‘

‘; */

// Set the legend text. Dos tercios de los presentes (******EDITAR LEYENDA*****)
function votosNecesarios(presentes) {
return Math.ceil((2 / 3) * presentes);
}

Advertisement

const leyText = nAfirmativo >= (votosNecesarios(72 – nAusente)) ? ‘Aprobada’ : ‘Rechazada’;
document.querySelector(‘#voto-summary’).innerHTML = `

Afirmativo: ${nAfirmativo} |
Negativo: ${nNegativo}

Abstención: ${nAbstencion} |
Ausente: ${nAusente}

` + ‘

Advertisement

‘ + leyText + ‘

‘;

}

Advertisement

// Creates the big hemiciclo visualization.
function createHemicicleBig(nAfirmativo, nNegativo, nAbstencion, nAusente) {
const hemicycle = document.querySelector(‘.votos-senadores__hemiciclo.big’);
hemicycle.innerHTML = »; // Clear previous content.

const centerX = 300;
const baseY = 450;
const numberOfRows = 5;
// Array of seats per row (outer to inner; total should be 257)
const seatsPerRow = [21, 18, 16, 11, 6];
const verticalOffset = 2;
const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0);

// Raw vote counts must sum to totalSeats (257)
const totalVotes = nAfirmativo + nNegativo + nAbstencion + nAusente;
if (totalVotes !== totalSeats) {
console.warn(«Total votes (» + totalVotes + «) do not equal total seats (» + totalSeats + «).»);
}

Advertisement

console.log(nAfirmativo, nNegativo, nAbstencion, nAusente, totalSeats, totalVotes);

// — Per-Row Distribution Using Absolute Counts —
// For each row, compute the exact allocation for each vote category based on its fraction of the total seats.
let rowSeatCounts = seatsPerRow.map(seatsInRow => {
const exactA = (nAfirmativo / totalSeats) * seatsInRow;
const exactN = (nNegativo / totalSeats) * seatsInRow;
const exactAb = (nAbstencion / totalSeats) * seatsInRow;
const exactAu = (nAusente / totalSeats) * seatsInRow;

let rowA = Math.floor(exactA);
let rowN = Math.floor(exactN);
let rowAb = Math.floor(exactAb);
let rowAu = Math.floor(exactAu);

Advertisement

let assigned = rowA + rowN + rowAb + rowAu;
let diff = seatsInRow – assigned;

// Create an array of remainders for each category.
let remainders = [{
cat: «afirmativo»,
rem: exactA – rowA
},
{
cat: «negativo»,
rem: exactN – rowN
},
{
cat: «abstencion»,
rem: exactAb – rowAb
},
{
cat: «ausente»,
rem: exactAu – rowAu
}
];
// Sort the remainders in descending order.
remainders.sort((a, b) => b.rem – a.rem);

// Distribute any leftover seats one by one.
while (diff > 0) {
for (let r of remainders) {
if (diff <= 0) break;
switch (r.cat) {
case «afirmativo»:
rowA++;
break;
case «negativo»:
rowN++;
break;
case «abstencion»:
rowAb++;
break;
case «ausente»:
rowAu++;
break;
}
diff–;
}
}
return {
afirmativo: rowA,
negativo: rowN,
abstencion: rowAb,
ausente: rowAu
};
});

Advertisement

// — Global Correction —
// Sum the allocated seats for each category across all rows.
let globalA = rowSeatCounts.reduce((sum, row) => sum + row.afirmativo, 0);
let globalN = rowSeatCounts.reduce((sum, row) => sum + row.negativo, 0);
let globalAb = rowSeatCounts.reduce((sum, row) => sum + row.abstencion, 0);
let globalAu = rowSeatCounts.reduce((sum, row) => sum + row.ausente, 0);

// For each category, if the global total is less than the raw count, add the missing seats to the outer row (row 0).
if (globalA < nAfirmativo) {
rowSeatCounts[0].afirmativo += (nAfirmativo – globalA);
}
if (globalN < nNegativo) {
rowSeatCounts[0].negativo += (nNegativo – globalN);
}
if (globalAb < nAbstencion) {
rowSeatCounts[0].abstencion += (nAbstencion – globalAb);
}
if (globalAu < nAusente) {
rowSeatCounts[0].ausente += (nAusente – globalAu);
}

// — Seat Placement Using Inverted Loop Order —
const maxSeatsInRow = seatsPerRow[0];
for (let col = 0; col < maxSeatsInRow; col++) {
for (let row = 0; row < numberOfRows; row++) {
if (col < seatsPerRow[row]) { // Only process if this row has a seat at the current column.
const seatsInThisRow = seatsPerRow[row];
const radius = 300 – row * (55 – verticalOffset);
const angleRange = Math.PI; // semicircle
const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow – 1) : 0;
const angle = (Math.PI – angleRange) / 2 + col * angleStep;
const x = centerX + radius * Math.cos(angle);
const y = baseY – radius * Math.sin(angle);

Advertisement

// For the current row, assign the color in order: afirmativo, then negativo, then abstencion, then ausente.
let colorClass=»color-empty»;
if (rowSeatCounts[row].afirmativo > 0) {
colorClass=»color-afirmativo»;
rowSeatCounts[row].afirmativo–;
} else if (rowSeatCounts[row].negativo > 0) {
colorClass=»color-negativo»;
rowSeatCounts[row].negativo–;
} else if (rowSeatCounts[row].abstencion > 0) {
colorClass=»color-abstencion»;
rowSeatCounts[row].abstencion–;
} else if (rowSeatCounts[row].ausente > 0) {
colorClass=»color-ausente»;
rowSeatCounts[row].ausente–;
}

const seat = document.createElement(‘div’);
seat.classList.add(‘seat’, colorClass);
seat.style.left = `${x}px`;
seat.style.top = `${y}px`;
hemicycle.appendChild(seat);
}
}
}

}

Advertisement

// Go-to-top button functionality.
document.addEventListener(‘DOMContentLoaded’, function() {
const goToTopButton = document.querySelector(‘.votos-senadores__go-to-top’);
const targetElement = document.querySelector(‘.votos-senadores’);

goToTopButton.addEventListener(‘click’, function() {
targetElement.scrollIntoView({
behavior: ‘smooth’
});
});
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
goToTopButton.style.display = entry.isIntersecting ? ‘block’ : ‘none’;
});
}, {
root: null,
rootMargin: ‘0px’,
threshold: 0.1
});
observer.observe(targetElement);

// Attach the toggle listener to each vote button.
const toggleBtns = document.getElementsByClassName(‘votos-senadores__voto-btn’);
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].addEventListener(‘click’, function() {
this.classList.toggle(‘active’);
const panel = this.nextElementSibling;
panel.style.maxHeight = panel.style.maxHeight ? null : ‘14000px’;
});
}

Advertisement

// Now simulate a click on each button from within DOMContentLoaded.
// This will trigger the listener and expand each panel on load.
for (let i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].click();
}

});

Advertisement
Continue Reading

Tendencias