How to use Gsap with DOM element of P5js

• 2 min read

If you need to integrate GSAP with P5.js, I’ve already written something about it.

If you need to trigger a GSAP animation using P5.js DOM elements, you need to workaround a bit to make it to work properly.

For instance, this simple script, that triggers a GSAP animation from a DOM P5.js element, doesn’t work:

var x = 0
var y = 0
var btn

function setup(){
	btn = createButton('click')
	btn.mousePressed(animate)
}

function draw(){
  circle(x, y, 50)
}

function animate(){
  gsap.to(this, {x:100, y:100})
}

The reason is that the this variable has a different context when called using a DOM element.

To workaround it, just keep the this context of the sketch in a custom variable, such as:

/* ... */
var sketch = this

/* ... */

function animate(){
  gsap.to(sketch, {x:100, y:100})
}

Now you can create your UI element that can drive any GSAP animations without issues.