Hot of the press

Photo d'une personne âgée

Louise-Michel high school students exhibit at the Departmental Council branch in Narbonne

The work on old age by 350 high school students, produced in collaboration with photographer Didier Carluccio, is currently on display in the reception hall of the Departmental Council branch…

9 October 2025

Through photography, care home residents have regained their energy

A rather unusual photography exhibition is on display in the corridors of the Mont-Saint-Vincent care home, featuring the residents themselves. These portraits, taken in February, were captured during sessions that significantly boosted the residents’ morale…

12 March 2025

Old age in distress in nursing homes

Families and professionals believe that the government’s plan on aging and dependency falls short of France’s demographic shift…

1 March 2019

Investigation: Far from the old, far from the heart — Old age erased and forgotten

A recent phenomenon on this scale, advanced old age is not necessarily a ‘shipwreck’: only one in five people over 85 is dependent. Yet, French society overlooks this age group, holding a biased and often negative perception of it…

11 May 2018

Didier Carluccio highlights the beauty of seniors

For over twenty years, Didier Carluccio has cast a committed and compassionate eye on old age…

8 September 2016
Scroll
document.addEventListener("DOMContentLoaded", () => {
  gsap.registerPlugin(ScrollTrigger);
  
	// -----------
  // GSAP Gallery
  // Vérifier si la largeur d'écran est supérieure ou égale à 768px
  const mediaQuery = window.matchMedia("(min-width: 768px)");
  // Fonction pour exécuter les animations GSAP
  function setupAnimations() {
    if (mediaQuery.matches) {
      const galleryColumnLeftItems = gsap.utils.toArray(".gallery__column--left-item");
      const galleryColumnRightItems = gsap.utils.toArray(".gallery__column--right-item");
      const galleryColumnLeft = document.querySelector(".gallery__column--left");
      const galleryColumnRight = document.querySelector(".gallery__column--right");
      const galleryColumnLeftHeight = galleryColumnLeft.getBoundingClientRect().height;
      const galleryColumnRightHeight = galleryColumnRight.getBoundingClientRect().height;
      gsap.to(galleryColumnLeftItems, {
        yPercent: 100 * (galleryColumnLeftItems.length - 1) + 2,
        ease: "none",
        scrollTrigger: {
          trigger: ".gallery__column--left",
          start: "top top",
          end: `+=${galleryColumnLeftHeight}`,
          scrub: 0.2,
          pin: true,
        }
      });

      gsap.to(galleryColumnRightItems, {
        yPercent: -100 * (galleryColumnRightItems.length - 1),
        ease: "none",
        scrollTrigger: {
          trigger: ".gallery__column--right",
          start: "top top",
          end: `+=${galleryColumnRightHeight}`,
          scrub: 0.2,
          pin: true,
        }
      });
    }
  }
  // Exécuter les animations au chargement initial
  setupAnimations();
  // Rafraîchir ScrollTrigger et réexécuter les animations lors du redimensionnement
  window.addEventListener("resize", () => {
    ScrollTrigger.refresh();
    setupAnimations();
  });
  // Écouter les changements de la media query
  mediaQuery.addEventListener("change", () => {
    ScrollTrigger.refresh();
    setupAnimations();
  });
  
// ---------
// GSAP Titre
  let fontSize = window.getComputedStyle(document.body).getPropertyValue('--font-size-xl');
  gsap.set('.home__content', { backgroundColor: "#000" });
  gsap.to('.home__content', {
    backgroundColor: "#FFF",
    scrollTrigger: {
      start: '40% 40%',
      end: '60%',
      toggleActions: 'play none none reverse',
      scrub: true,
    }
  });
  // Animation du h1 seulement au-dessus de 768px
  ScrollTrigger.matchMedia({
    "(min-width: 768px)": function() {
      gsap.to('h1', {
        fontSize: fontSize,
        scrollTrigger: {
          trigger: 'h1',
          start: 'top 80%',
          end: 'bottom 10%',
          scrub: true,
        }
      });
    }
  });
});