Listen to the article

0:00
0:00

`;
else
text_elt += `>

${r.text}

`;
text_container.innerHTML += text_elt;
number_of_slides++;
}
text_container.innerHTML += « ;

// INIT GRAPH HERE
const graph_utils = init_graph(graph_container);
// END INIT

let current_slide_id;

function draw_graph(id_slide, changing_slide = true, going_up = false, force = false) {
const is_not_empty = graph_container.querySelector(« div ») !== null;
let proportion_in_view = 0;
if (use_proportion_in_view) {
const slide_bbox = document.querySelector(`.d_scroll_slide[data-count= »${id_slide ?? 0} »]`).getBoundingClientRect();
proportion_in_view = -slide_bbox.top / slide_bbox.height;
}
//if (is_not_empty) graph_container.classList.add(« fade-out-class »);
// UPDATE FONCTION HERE

update_graph(graph_utils, graph_container, id_slide, proportion_in_view, changing_slide, going_up);
// END UPDATE
current_slide_id = id_slide;
}
function delete_graph() {
graph_container.classList.add(« fade-out-class »);
setTimeout(() => {
graph_container.innerHTML = «  »;
current_chart_id = null;
graph_container.classList.remove(« fade-out-class »);
}, duration_fade);
}
const first_slide = overall_container.querySelector(« .d_scroll_slide:first-child »);
let current_slide = get_current_slide_in_view();
let current_slide_count = current_slide ? +current_slide.dataset.count : null;
draw_graph(current_slide_count);

document.addEventListener(« scroll », (event) => {
// Go into sticky mode at the first slide
const overall_container_bb = overall_container.getBoundingClientRect();
if (!graph_container.classList.contains(« d_sticky ») && overall_container_bb.y < 0) graph_container.classList.add(« d_sticky »);
if (graph_container.classList.contains(« d_sticky ») && overall_container_bb.y > 0) graph_container.classList.remove(« d_sticky »);

// What if we reach the end
if (!graph_container.classList.contains(« d_fixed_end ») && overall_container_bb.bottom < screen_height) graph_container.classList.add(« d_fixed_end »);
if (graph_container.classList.contains(« d_fixed_end ») && overall_container_bb.bottom > screen_height) graph_container.classList.remove(« d_fixed_end »);

// Scrolling down
if (current_slide == null && first_slide.getBoundingClientRect().top < 0) {
current_slide_count = 0;
current_slide = text_container.querySelector(`.d_scroll_slide[data-count= »${current_slide_count} »]`);
draw_graph(current_slide_count);
} else if (current_slide_count === 0 && first_slide.getBoundingClientRect().top > 0) {
current_slide_count = null;
current_slide = null;
draw_graph(current_slide_count, (going_up = true));
}
if (current_slide && current_slide_count < number_of_slides – 1 && current_slide.getBoundingClientRect().bottom < 0) {
current_slide_count += 1;
current_slide = text_container.querySelector(`.d_scroll_slide[data-count= »${current_slide_count} »]`);
if (current_slide.querySelector(« .d_scroll_flat »)) delete_graph();
draw_graph(current_slide_count);
}
// Going back up
else if (current_slide && current_slide_count > 0 && current_slide.getBoundingClientRect().top > 0) {
current_slide_count -= 1;
current_slide = text_container.querySelector(`.d_scroll_slide[data-count= »${current_slide_count} »]`);
//console.log(« NEW SLIDE Up », current_slide_count)
if (current_slide.querySelector(« .d_scroll_flat »)) delete_graph();
draw_graph(current_slide_count, (going_up = true));
} else if (use_proportion_in_view) {
draw_graph(current_slide_count, (changing_slide = false));
}
});

function get_current_slide_in_view() {
/* CASE FIRST CHILD IS INVISIBLE */
const first_slide = overall_container.querySelector(« .d_scroll_slide:first-child »);
const bbox = first_slide.getBoundingClientRect();
if (bbox.top > screen_height) return null;
/* CASE AT LEAST ONE CHILD IS VISIBLE */
for (let slide of overall_container.querySelectorAll(`.d_scroll_slide`)) {
if (is_visible(slide)) return slide;
}
/* CASE LAST CHILD IS INVISIBLE TODO */
}

function is_visible(slide) {
const bbox = slide.getBoundingClientRect();
return bbox.bottom > 0 && bbox.top < screen_height;
}
}
// const isInApp = window.location.href.match(/apps.([a-z]+-)?lemonde.fr/);

// window.onload = () => {
run_miniscrolly_cop(« #d_miniscrolly_cop », dataset_miniscrolly_cop, init_graph_miniscrolly_cop, update_graph_miniscrolly_cop, use_proportion_in_view_miniscrolly_cop);
// };

Idée reçue n° 1 : « Les COP ne servent à rien, le climat continue de se réchauffer »

Le but des COP est de faire avancer le droit international pour lutter contre le dérèglement climatique et aider l’humanité à s’y adapter. Il est difficile de mesurer le succès de chaque conférence prise individuellement, car il s’agit d’un processus long et très progressif : les Etats y adoptent des textes plus ou moins contraignants, dont la mise en application dépend grandement de leur volontarisme.

La COP 3 au Japon (1997) et la COP 21 en France (2015) sont les plus mémorables : elles ont abouti respectivement au protocole de Kyoto, premier outil contraignant pour limiter les émissions de gaz à effet de serre (GES), et à l’accord de Paris, le premier traité international visant à limiter le réchauffement « nettement en dessous » de 2 °C par rapport aux niveaux préindustriels. Ces deux accords ont permis « une adoption quasi universelle d’un cadre législatif climatique dans les pays », relate Céline Kauffmann, directrice des programmes de l’Institut du développement durable et des relations internationales (Iddri). Ils ont également provoqué des dynamiques de marché importantes favorisant les énergies renouvelables et les voitures électriques.

Il vous reste 88.58% de cet article à lire. La suite est réservée aux abonnés.

Partager.

Salle de presse de TheNews.re. Nous couvrons l'actualité réunionnaise et internationale avec rigueur et objectivité. Notre mission : informer les citoyens avec des analyses approfondies sur la politique, la société, l'économie et la culture.

7 commentaires

Laisser une réponse