A continuación he creado el efecto de deslizamiento slideToggle de jQuery usando Vanilla JS + GSAP, re-utilizable para múltiples elementos en la misma página.

He utilizado los mismos nombres de clases que en el post de Vanilla JS: slideToggle(): la clase «js-toggle» para asignar al elemento que se encargue de la acción de abrir/ocultar, junto con un atributo «data-container» para asignar el «id» del contenedor del slide.

Ejemplo:

<button class="js-toggle" data-container="toggle-1">Mostrar toggle 1</button>
<span class="js-toggle" data-container="toggle-2">Mostrar toggle 2</span>
Etc...

Y para el elemento contenedor del slide he usado la clase «toggle-container» y el atributo «id» con el nombre que quieras.

Ejemplo:

<div class="toggle-container" id="toggle-1">
  <!-- tu contenido -->
</div>

<div class="toggle-container" id="toggle-2">
  <!-- tu contenido -->
</div>
.toggle-container{
  height: 0;
  overflow:hidden;
}
.toggle-container.open{
  height: auto;
}

Y el código js con la animación GSAP:

var linkToggle = document.querySelectorAll('.js-toggle');

for(i = 0; i < linkToggle.length; i++){

  linkToggle[i].addEventListener('click', function(){

    var container = document.getElementById(this.dataset.container);
    var link = this;

    if (link.classList.contains('active')) {
      link.classList.remove('active');
      TweenLite.to(container, 0.4, { height:0 })
    } else {
      link.classList.add('active');
      TweenLite.set(container, { height: "auto" })
      TweenLite.from(container, 0.4, { height: 0 })
    }
    
  });

}

Demo:

Agradezco tu comentario 🤘